diff --git a/CREDITS b/CREDITS
index df1132a..02a8b42 100644
--- a/CREDITS
+++ b/CREDITS
@@ -1,5 +1,5 @@
#!/bin/cat
-# $Id: CREDITS,v 1.160 2011/07/11 01:30:09 gilles Exp gilles $
+# $Id: CREDITS,v 1.162 2011/09/21 20:21:14 gilles Exp gilles $
If you want to make a donation to the author, Gilles LAMIRAL,
use any of the following ways:
@@ -30,10 +30,16 @@ I thank very much all of these people.
I thank also very much all people who bought imapsync from the homepage
but I don't cite them here.
+Klaus Franken
+Patch to avoid useless warning "Use of uninitialized value $uid1 in exists"
+
+Charles H Deling
+Contributed by giving the book
+13.59 "The Twitter Book"
+
Paulo Victor Fernandes da Silva
Contributed by giving money 1 USD
-
Daniel Rohde
Bugfix. Solaris 10. ps -o vsz -p @PID
diff --git a/ChangeLog b/ChangeLog
index 0ea6f77..af517f3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,17 +1,46 @@
RCS file: RCS/imapsync,v
Working file: imapsync
-head: 1.456
+head: 1.463
branch:
locks: strict
- gilles: 1.456
+ gilles: 1.463
access list:
symbolic names:
keyword substitution: kv
-total revisions: 456; selected revisions: 456
+total revisions: 463; selected revisions: 463
description:
----------------------------
-revision 1.456 locked by: gilles;
+revision 1.463 locked by: gilles;
+date: 2011/11/12 21:58:52; author: gilles; state: Exp; lines: +9 -7
+--subscribe is on by defaut.
+----------------------------
+revision 1.462
+date: 2011/10/16 23:48:58; author: gilles; state: Exp; lines: +14 -11
+Added --nocacheaftercopy to avoid bad uids in cache with --useuid or --usecache and strange uid generator like dbmail 2.2.17
+----------------------------
+revision 1.461
+date: 2011/10/07 21:02:15; author: gilles; state: Exp; lines: +8 -8
+MailEnable
+Mirapoint
+----------------------------
+revision 1.460
+date: 2011/09/21 20:19:46; author: gilles; state: Exp; lines: +8 -8
+Avoid Perl warning 'Use of uninitialized value $uid1 in exists'. Thanks to Klaus Franken
+----------------------------
+revision 1.459
+date: 2011/09/21 20:10:38; author: gilles; state: Exp; lines: +7 -7
+Kerio 7.2.0 Patch 1 as host2
+----------------------------
+revision 1.458
+date: 2011/08/24 22:26:20; author: gilles; state: Exp; lines: +7 -6
+Yahoo host1 success.
+----------------------------
+revision 1.457
+date: 2011/08/24 21:55:56; author: gilles; state: Exp; lines: +10 -10
+Renamed file.csv to file.txt
+----------------------------
+revision 1.456
date: 2011/08/24 04:21:30; author: gilles; state: Exp; lines: +15 -13
Help message on --sep when namespace separator is NIL. Yahoo case.
----------------------------
diff --git a/FAQ b/FAQ
index bc776e3..385fcdd 100644
--- a/FAQ
+++ b/FAQ
@@ -1,11 +1,14 @@
#!/bin/cat
-# $Id: FAQ,v 1.92 2011/08/24 06:50:17 gilles Exp gilles $
+# $Id: FAQ,v 1.95 2011/11/12 23:41:20 gilles Exp gilles $
+------------------+
| FAQ for imapsync |
+------------------+
Unix versus Windows syntax.
+
+A) \ versus ^
+
On Unix shells you can write a single command on multiple lines
by using the escape character \ at the end of each line
(except the last one). On Windows this character is ^
@@ -31,6 +34,14 @@ better, no truncation, pretty print. It's just sugar.
In this FAQ I use \ for examples. Transcript to ^ if
you're on a Windows system.
+B) ' versus "
+
+On Windows the single quote character ' doesn't work
+like on Unix so in the examples of this FAQ the
+command containing single quotes ' will fail on Windows.
+To fix it just replace single quotes ' by double quotes "
+
+
=======================================================================
Q. How to install imapsync?
@@ -81,11 +92,11 @@ Thank you for your participation.
Q. I need to migrate hundred accounts, how can I do?
R. If you have many mailboxes to migrate think about a little
-shell program. Write a file called file.csv (for example)
+shell program. Write a file called file.txt (for example)
containing users and passwords.
The separator used in this example is ';'
-The file.csv file contains:
+The file.txt file contains:
user001_1;password001_1;user001_2;password001_2
user002_1;password002_1;user002_2;password002_2
@@ -99,11 +110,11 @@ On Unix the shell program can be:
{ while IFS=';' read u1 p1 u2 p2; do
imapsync --host1 imap.side1.org --user1 "$u1" --password1 "$p1" \
--host2 imap.side2.org --user2 "$u2" --password2 "$p2" ...
- done ; } < file.csv
+ done ; } < file.txt
On Windows the batch program can be:
- FOR /F "tokens=1,2,3,4 delims=; eol=#" %%G IN (file.csv) DO imapsync ^
+ FOR /F "tokens=1,2,3,4 delims=; eol=#" %%G IN (file.txt) DO imapsync ^
--host1 imap.side1.org --user1 %%G --password1 %%H ^
--host2 imap.side2.org --user2 %%I --password2 %%J ...
@@ -128,10 +139,15 @@ R. - Download latest Mail::IMAPClient 3.xx at
- run imapsync with perl and -I option tailing to use the perl
module Mail-IMAPClient-3.xx. Example:
- perl -I./Mail-IMAPClient-3.23/lib ./imapsync ...
+ perl -I./Mail-IMAPClient-3.30/lib ./imapsync ...
or if imapsync is in directory /path/
- perl -I./Mail-IMAPClient-3.23/lib /path/imapsync ...
+ perl -I./Mail-IMAPClient-3.30/lib /path/imapsync ...
+
+ - Look at the script named i3 in the tarball, it can be used to
+ run imapsync with included Mail-IMAPClient-3.30/ wherever you
+ unpacked the imapsync tarball
+
=======================================================================
Q. How can I use imapsync with Mail::IMAPClient 2.2.9 perl module?
@@ -148,6 +164,11 @@ R. - Download Mail::IMAPClient 2.2.9 at
or if imapsync is in directory /path/
perl -I./Mail-IMAPClient-2.2.9 /path/imapsync [...]
+ - Look at the script named i2 in the tarball, it can be used to
+ run imapsync with included Mail-IMAPClient-2.2.9/ wherever you
+ unpacked the imapsync tarball
+
+
=======================================================================
Q. Can I use imapsync to migrate emails from pop3 server to imap server?
@@ -322,7 +343,7 @@ Q. How to convert flags?
R. use --regexflag
For example to convert flag IMPORTANT to flag CANWAIT
- imapsync ... --regexflag 's/IMPORTANT/CANWAIT/g' --debugflags
+ imapsync ... --regexflag "s/IMPORTANT/CANWAIT/g" --debugflags
option --debugflags is usefull to see in details what imapsync
does with flags.
@@ -1014,6 +1035,22 @@ http://www.linux-france.org/prj/imapsync_list/msg00639.html
http://biasecurities.com/blog/2009/migrate-email-from-gmail-to-google-apps/
http://www.thamtech.com/blog/2008/03/29/gmail-to-google-apps-email-migration/
+=======================================================================
+Q. Synchronising from Yahoo to XXX
+
+R. Use --host1 imap.mail.yahoo.com --sep1 '/'
+
+./imapsync \
+ --host1 imap.mail.yahoo.com \
+ --user1 billy \
+ --password1 secret \
+ --host2 XXX \
+ --user2 billy \
+ --password2 secret \
+ --sep1 '/'
+
+Can also add --ssl1 to gain encrypted transfer from yahoo.
+
=======================================================================
Q. from Microsoft's Exchange 2007 to Google Apps for your Domain
(GAFYD)
diff --git a/Mail-IMAPClient-3.28/Changes b/Mail-IMAPClient-3.30/Changes
similarity index 98%
rename from Mail-IMAPClient-3.28/Changes
rename to Mail-IMAPClient-3.30/Changes
index 137a4c7..eb68a41 100644
--- a/Mail-IMAPClient-3.28/Changes
+++ b/Mail-IMAPClient-3.30/Changes
@@ -5,7 +5,49 @@ Changes from 2.99_01 to 3.16 made by Mark Overmeer
Changes from 0.09 to 2.99_01 made by David Kernen
- Potential compatibility issues from 3.17+ highlighted with '*'
-version 3.28_04: Fri Mar 4 00:17:38 EST 2011
+version 3.30: Fri Nov 11 09:37:00 EST 2011
+ - rt.cpan.org#72347: Starttls array ref argument dereferenced twice
+ [Jonathan Buhacoff]
+ - during connect(): Port now defaults 143 or 993 if $self->Ssl
+ [Kodi Arfer]
+ - stop reconnect deep recursion if server disconnects on login
+ [Luca Ferrario]
+ - reconnect() now returns 1 on success; on error undef or 0=recursive
+ - handle EBADF from syswrite in _send_bytes
+ - rt.cpan.org#67263: add RFC4978 IMAP COMPRESS Extension support
+ [SDIZ]
+ + new method: compress()
+ + new attributes: Compress Readmoremethod
+ - general code cleanup:
+ + new() now always returns $self or undef (never $sock any more)
+ + Socket() now always return a socket or undef
+ + login() now always return $self or undef
+ + _read_more() will now use Readmoremethod if set
+ - missing second arg '' for encode_base64 causing AUTHENTICATE
+ PLAIN to fail on lines longer than 76 characters
+ [Yoshiho Yoshida]
+
+version 3.29: Tue Aug 9 00:33:52 EDT 2011
+ - rt.cpan.org#69876: ENVELOPE as part of fetch_hash convenience method
+ [Chris Huttman]
+ + added Mail::IMAPClient::BodyStructure::Envelope->parse_string($str)
+ convenience method for handling ENVELOPE data from fetch_hash
+ - rt.cpan.org#68310: folders() should not call exists()/STATUS
+ [Gilles Lamiral]
+ - affects folders() and subscribed() methods
+ + use selectable() instead of exists() in call
+ - consider removing extra call to folders()/subscribed()
+ + ensure separator is set properly in folders()
+ + selectable now properly checks for \Noselect flag
+ + update folders() POD to match implementation behavior
+ - rt.cpan.org#68648: [patch]: CAPABILITY after authenticate
+ [Stef Simoens]
+ + delete cache after State set to Authenticate
+ - State() is no longer an auto-generated method
+ - rt.cpan.org#68755: provided socket loses blocking in 3.19-3.28
+ [Martin Schmitt]
+
+version 3.28: Fri Mar 4 00:17:38 EST 2011
- rt.cpan.org#66004: internaldate() return undef if no internaldate in reply
[Jason Long]
- rt.cpan.org#66367: fetch_hash uses Escaped_results() in 3.26/3.27
diff --git a/Mail-IMAPClient-3.28/MANIFEST b/Mail-IMAPClient-3.30/MANIFEST
similarity index 100%
rename from Mail-IMAPClient-3.28/MANIFEST
rename to Mail-IMAPClient-3.30/MANIFEST
diff --git a/Mail-IMAPClient-3.28/META.yml b/Mail-IMAPClient-3.30/META.yml
similarity index 97%
rename from Mail-IMAPClient-3.28/META.yml
rename to Mail-IMAPClient-3.30/META.yml
index e10d446..7bbbd07 100644
--- a/Mail-IMAPClient-3.28/META.yml
+++ b/Mail-IMAPClient-3.30/META.yml
@@ -1,6 +1,6 @@
--- #YAML:1.0
name: Mail-IMAPClient
-version: 3.28
+version: 3.30
abstract: IMAP4 client library
author:
- Phil Pearl (Lobbes)
diff --git a/Mail-IMAPClient-3.28/Makefile.PL b/Mail-IMAPClient-3.30/Makefile.PL
similarity index 98%
rename from Mail-IMAPClient-3.28/Makefile.PL
rename to Mail-IMAPClient-3.30/Makefile.PL
index 82ce861..14d3005 100644
--- a/Mail-IMAPClient-3.28/Makefile.PL
+++ b/Mail-IMAPClient-3.30/Makefile.PL
@@ -8,6 +8,7 @@ my @missing;
my %optional = (
"Authen::NTLM" => { for => "Authmechanism 'NTLM'" },
"Authen::SASL" => { for => "Authmechanism 'DIGEST-MD5'" },
+ "Compress::Zlib" => { for => "COMPRESS DEFLATE support" },
"Digest::HMAC_MD5" => { for => "Authmechanism 'CRAM-MD5'" },
"Digest::MD5" => { for => "Authmechanism 'DIGEST-MD5'" },
"IO::Socket::SSL" => { for => "SSL enabled connections (Ssl => 1)" },
diff --git a/Mail-IMAPClient-3.28/README b/Mail-IMAPClient-3.30/README
similarity index 98%
rename from Mail-IMAPClient-3.28/README
rename to Mail-IMAPClient-3.30/README
index 26a65fb..3aa5e11 100644
--- a/Mail-IMAPClient-3.28/README
+++ b/Mail-IMAPClient-3.30/README
@@ -18,6 +18,7 @@ The following are the minimum requirements for using Mail::IMAPClient:
Optional:
Authen::NTLM
Authen::SASL
+ Compress::Zlib
Digest::HMAC_MD5
Digest::MD5
IO::Socket::SSL
diff --git a/Mail-IMAPClient-3.28/examples/build_dist.pl b/Mail-IMAPClient-3.30/examples/build_dist.pl
similarity index 100%
rename from Mail-IMAPClient-3.28/examples/build_dist.pl
rename to Mail-IMAPClient-3.30/examples/build_dist.pl
diff --git a/Mail-IMAPClient-3.28/examples/build_ldif.pl b/Mail-IMAPClient-3.30/examples/build_ldif.pl
similarity index 100%
rename from Mail-IMAPClient-3.28/examples/build_ldif.pl
rename to Mail-IMAPClient-3.30/examples/build_ldif.pl
diff --git a/Mail-IMAPClient-3.28/examples/cleanTest.pl b/Mail-IMAPClient-3.30/examples/cleanTest.pl
similarity index 100%
rename from Mail-IMAPClient-3.28/examples/cleanTest.pl
rename to Mail-IMAPClient-3.30/examples/cleanTest.pl
diff --git a/Mail-IMAPClient-3.28/examples/copy_folder.pl b/Mail-IMAPClient-3.30/examples/copy_folder.pl
similarity index 100%
rename from Mail-IMAPClient-3.28/examples/copy_folder.pl
rename to Mail-IMAPClient-3.30/examples/copy_folder.pl
diff --git a/Mail-IMAPClient-3.28/examples/cyrus_expire.pl b/Mail-IMAPClient-3.30/examples/cyrus_expire.pl
similarity index 100%
rename from Mail-IMAPClient-3.28/examples/cyrus_expire.pl
rename to Mail-IMAPClient-3.30/examples/cyrus_expire.pl
diff --git a/Mail-IMAPClient-3.28/examples/cyrus_expunge.pl b/Mail-IMAPClient-3.30/examples/cyrus_expunge.pl
similarity index 100%
rename from Mail-IMAPClient-3.28/examples/cyrus_expunge.pl
rename to Mail-IMAPClient-3.30/examples/cyrus_expunge.pl
diff --git a/Mail-IMAPClient-3.28/examples/find_dup_msgs.pl b/Mail-IMAPClient-3.30/examples/find_dup_msgs.pl
similarity index 100%
rename from Mail-IMAPClient-3.28/examples/find_dup_msgs.pl
rename to Mail-IMAPClient-3.30/examples/find_dup_msgs.pl
diff --git a/Mail-IMAPClient-3.28/examples/idle.pl b/Mail-IMAPClient-3.30/examples/idle.pl
similarity index 100%
rename from Mail-IMAPClient-3.28/examples/idle.pl
rename to Mail-IMAPClient-3.30/examples/idle.pl
diff --git a/Mail-IMAPClient-3.28/examples/imap_to_mbox.pl b/Mail-IMAPClient-3.30/examples/imap_to_mbox.pl
similarity index 100%
rename from Mail-IMAPClient-3.28/examples/imap_to_mbox.pl
rename to Mail-IMAPClient-3.30/examples/imap_to_mbox.pl
diff --git a/Mail-IMAPClient-3.28/examples/imtestExample.pl b/Mail-IMAPClient-3.30/examples/imtestExample.pl
similarity index 100%
rename from Mail-IMAPClient-3.28/examples/imtestExample.pl
rename to Mail-IMAPClient-3.30/examples/imtestExample.pl
diff --git a/Mail-IMAPClient-3.28/examples/migrate_mail2.pl b/Mail-IMAPClient-3.30/examples/migrate_mail2.pl
similarity index 100%
rename from Mail-IMAPClient-3.28/examples/migrate_mail2.pl
rename to Mail-IMAPClient-3.30/examples/migrate_mail2.pl
diff --git a/Mail-IMAPClient-3.28/examples/migrate_mbox.pl b/Mail-IMAPClient-3.30/examples/migrate_mbox.pl
similarity index 100%
rename from Mail-IMAPClient-3.28/examples/migrate_mbox.pl
rename to Mail-IMAPClient-3.30/examples/migrate_mbox.pl
diff --git a/Mail-IMAPClient-3.28/examples/populate_mailbox.pl b/Mail-IMAPClient-3.30/examples/populate_mailbox.pl
similarity index 100%
rename from Mail-IMAPClient-3.28/examples/populate_mailbox.pl
rename to Mail-IMAPClient-3.30/examples/populate_mailbox.pl
diff --git a/Mail-IMAPClient-3.28/examples/sharedFolder.pl b/Mail-IMAPClient-3.30/examples/sharedFolder.pl
similarity index 100%
rename from Mail-IMAPClient-3.28/examples/sharedFolder.pl
rename to Mail-IMAPClient-3.30/examples/sharedFolder.pl
diff --git a/Mail-IMAPClient-3.28/lib/Mail/IMAPClient.pm b/Mail-IMAPClient-3.30/lib/Mail/IMAPClient.pm
similarity index 93%
rename from Mail-IMAPClient-3.28/lib/Mail/IMAPClient.pm
rename to Mail-IMAPClient-3.30/lib/Mail/IMAPClient.pm
index cebb696..ef09340 100644
--- a/Mail-IMAPClient-3.28/lib/Mail/IMAPClient.pm
+++ b/Mail-IMAPClient-3.30/lib/Mail/IMAPClient.pm
@@ -7,7 +7,7 @@ use strict;
use warnings;
package Mail::IMAPClient;
-our $VERSION = '3.28';
+our $VERSION = '3.30';
use Mail::IMAPClient::MessageSet;
@@ -16,7 +16,7 @@ use IO::Select ();
use Carp qw(carp); #local $SIG{__WARN__} = \&Carp::cluck; #DEBUG
use Fcntl qw(F_GETFL F_SETFL O_NONBLOCK);
-use Errno qw(EAGAIN EPIPE ECONNRESET);
+use Errno qw(EAGAIN EBADF ECONNRESET EPIPE);
use List::Util qw(first min max sum);
use MIME::Base64 qw(encode_base64 decode_base64);
use File::Spec ();
@@ -47,6 +47,7 @@ my %SEARCH_KEYS = map { ( $_ => 1 ) } qw(
# modules require(d) during runtime when applicable
my %Load_Module = (
+ "Compress-Zlib" => "Compress::Zlib",
"SSL" => "IO::Socket::SSL",
"BodyStructure" => "Mail::IMAPClient::BodyStructure",
"Envelope" => "Mail::IMAPClient::BodyStructure::Envelope",
@@ -83,11 +84,11 @@ BEGIN {
# set-up accessors
foreach my $datum (
- qw(Authcallback Authmechanism Authuser Buffer Count Debug
- Debug_fh Domain Folder Ignoresizeerrors Keepalive
+ qw(Authcallback Authmechanism Authuser Buffer Count Compress
+ Debug Debug_fh Domain Folder Ignoresizeerrors Keepalive
Maxappendstringlength Maxcommandlength Maxtemperrors
Password Peek Port Prewritemethod Proxy Ranges Readmethod
- Reconnectretry Server Showcredentials Ssl Starttls State
+ Readmoremethod Reconnectretry Server Showcredentials Ssl Starttls
Supportedflags Timeout Uid User)
)
{
@@ -256,7 +257,6 @@ sub new {
LastError => "",
Uid => 1,
Count => 0,
- Fast_io => 1,
Clear => 2,
Keepalive => 0,
Maxappendstringlength => 1024**2,
@@ -264,7 +264,6 @@ sub new {
Maxtemperrors => undef,
State => Unconnected,
Authmechanism => 'LOGIN',
- Port => 143,
Timeout => 600,
History => {},
};
@@ -275,6 +274,12 @@ sub new {
}
bless $self, ref($class) || $class;
+ # Fast_io is enabled by default when not given a socket
+ unless ( exists $self->{Fast_io} || $self->{Socket} || $self->{Rawsocket} )
+ {
+ $self->{Fast_io} = 1;
+ }
+
if ( my $sup = $self->{Supportedflags} ) { # unpack into case-less HASH
my %sup = map { m/^\\?(\S+)/ ? lc $1 : () } @$sup;
$self->{Supportedflags} = \%sup;
@@ -299,7 +304,10 @@ sub new {
$self->RawSocket($sock) unless $self->{Socket};
}
- !$self->{Socket} && $self->{Server} ? $self->connect : $self;
+ if ( !$self->{Socket} && $self->{Server} ) {
+ $self->connect or return undef;
+ }
+ return $self;
}
sub connect(@) {
@@ -309,7 +317,7 @@ sub connect(@) {
%$self = ( %$self, @_ ) if @_;
my $server = $self->Server;
- my $port = $self->Port;
+ my $port = $self->Port || $self->Port( $self->Ssl ? "993" : "143" );
my @timeout = $self->Timeout ? ( Timeout => $self->Timeout ) : ();
my $sock;
@@ -323,27 +331,28 @@ sub connect(@) {
}
else {
my $ioclass = "IO::Socket::INET";
- if ( $self->Ssl ) {
- $ioclass = $self->_load_module("SSL") or return undef;
- }
+ $ioclass = $self->_load_module("SSL") if ( $self->Ssl );
- $self->_debug("Connecting via $ioclass to $server:$port @timeout");
- $sock = $ioclass->new(
- PeerAddr => $server,
- PeerPort => $port,
- Proto => 'tcp',
- Debug => $self->Debug,
- @timeout
- );
+ if ($ioclass) {
+ $self->_debug("Connecting via $ioclass to $server:$port @timeout");
+ $sock = $ioclass->new(
+ PeerAddr => $server,
+ PeerPort => $port,
+ Proto => 'tcp',
+ Debug => $self->Debug,
+ @timeout
+ );
+ }
}
- unless ($sock) {
+ if ($sock) {
+ $self->_debug( "Connected to $server" . ( $! ? " errno($!)" : "" ) );
+ return $self->Socket($sock);
+ }
+ else {
$self->LastError("Unable to connect to $server: $@");
return undef;
}
-
- $self->_debug( "Connected to $server" . ( $! ? " errno($!)" : "" ) );
- $self->Socket($sock);
}
sub RawSocket(;$) {
@@ -357,7 +366,7 @@ sub RawSocket(;$) {
delete $self->{_fcntl};
$self->Fast_io( $self->Fast_io );
- $sock;
+ return $sock;
}
sub Socket($) {
@@ -387,7 +396,11 @@ sub Socket($) {
$self->starttls or return undef;
}
- $self->User && $self->Password ? $self->login : $self;
+ if ( defined $self->User && defined $self->Password ) {
+ $self->login or return undef;
+ }
+
+ return $self->{Socket};
}
# RFC2595 section 3.1
@@ -418,7 +431,7 @@ sub starttls {
# give caller control of args to start_SSL if desired
my @sslargs =
( $self->Starttls and ref( $self->Starttls ) eq "ARRAY" )
- ? ( @${ $self->Starttls } )
+ ? ( @{ $self->Starttls } )
: ( Timeout => 30 );
unless ( $ioclass->start_SSL( $sock, @sslargs ) ) {
@@ -432,30 +445,129 @@ sub starttls {
return $self;
}
+# RFC4978 COMPRESS
+sub compress {
+ my ($self) = @_;
+
+ # BUG? strict check on capability commented out for now...
+ #my $can = $self->has_capability("COMPRESS")
+ #return undef unless $can and $can eq "DEFLATE";
+
+ $self->_imap_command("COMPRESS DEFLATE") or return undef;
+
+ my $zcl = $self->_load_module("Compress-Zlib") or return undef;
+
+ # give caller control of args if desired
+ $self->Compress(
+ [
+ -WindowBits => -$zcl->MAX_WBITS(),
+ -Level => $zcl->Z_BEST_SPEED()
+ ]
+ ) unless ( $self->Compress and ref( $self->Compress ) eq "ARRAY" );
+
+ my ( $rc, $do, $io );
+
+ ( $do, $rc ) = Compress::Zlib::deflateInit( @{ $self->Compress } );
+ unless ( $rc == $zcl->Z_OK ) {
+ $self->LastError("deflateInit failed (rc=$rc)");
+ return undef;
+ }
+
+ ( $io, $rc ) =
+ Compress::Zlib::inflateInit( -WindowBits => -$zcl->MAX_WBITS() );
+ unless ( $rc == $zcl->Z_OK ) {
+ $self->LastError("inflateInit failed (rc=$rc)");
+ return undef;
+ }
+
+ $self->{Prewritemethod} = sub {
+ my ( $imap, $string ) = @_;
+
+ my ( $rc, $out1, $out2 );
+ ( $out1, $rc ) = $do->deflate($string);
+ ( $out2, $rc ) = $do->flush( $zcl->Z_PARTIAL_FLUSH() )
+ unless ( $rc != $zcl->Z_OK );
+
+ unless ( $rc == $zcl->Z_OK ) {
+ $self->LastError("deflate/flush failed (rc=$rc)");
+ return undef;
+ }
+
+ return $out1 . $out2;
+ };
+
+ # need to retain some state for Readmoremethod/Readmethod calls
+ my ( $Zbuf, $Ibuf ) = ( "", "" );
+
+ $self->{Readmoremethod} = sub {
+ my $self = shift;
+ return 1 if ( length($Zbuf) || length($Ibuf) );
+ $self->__read_more(@_);
+ };
+
+ $self->{Readmethod} = sub {
+ my ( $imap, $fh, $buf, $len, $off ) = @_;
+
+ # get more data, but empty $Ibuf first if any data is left
+ my ( $lz, $li ) = ( length $Zbuf, length $Ibuf );
+ if ( $lz || !$li ) {
+ my $ret = sysread( $fh, $Zbuf, $len, length $Zbuf );
+ $lz = length $Zbuf;
+ return $ret if ( !$ret && !$lz ); # $ret is undef or 0
+ }
+
+ # accummulate inflated data in $Ibuf
+ if ($lz) {
+ my ( $tbuf, $rc ) = $io->inflate( \$Zbuf );
+ unless ( $rc == $zcl->Z_OK ) {
+ $self->LastError("inflate failed (rc=$rc)");
+ return undef;
+ }
+ $Ibuf .= $tbuf;
+ }
+
+ # pull desired length of data from $Ibuf
+ my $tbuf = substr( $Ibuf, 0, $len );
+ substr( $Ibuf, 0, $len ) = "";
+ substr( $$buf, $off ) = $tbuf;
+
+ return length $tbuf;
+ };
+
+ return $self;
+}
+
sub login {
my $self = shift;
my $auth = $self->Authmechanism;
- return $self->authenticate( $auth, $self->Authcallback )
- if $auth && $auth ne 'LOGIN';
- my $passwd = $self->Password;
- my $id = $self->User;
+ if ( $auth && $auth ne 'LOGIN' ) {
+ $self->authenticate( $auth, $self->Authcallback )
+ or return undef;
+ }
+ else {
+ my $passwd = $self->Password;
+ my $id = $self->User;
- return undef unless ( defined($passwd) and defined($id) );
+ return undef unless ( defined($passwd) and defined($id) );
- # BUG: should use Quote() with $passwd and $id
- if ( $passwd eq "" or $passwd =~ m/\W/ ) {
- $passwd =~ s/(["\\])/\\$1/g;
- $passwd = qq("$passwd");
+ # BUG: should use Quote() with $passwd and $id
+ if ( $passwd eq "" or $passwd =~ m/\W/ ) {
+ $passwd =~ s/(["\\])/\\$1/g;
+ $passwd = qq("$passwd");
+ }
+
+ $id = qq("$id") if $id !~ /^".*"$/;
+
+ $self->_imap_command("LOGIN $id $passwd")
+ or return undef;
}
- $id = qq("$id") if $id !~ /^".*"$/;
-
- $self->_imap_command("LOGIN $id $passwd")
- or return undef;
-
$self->State(Authenticated);
- $self;
+ if ( $self->Compress ) {
+ $self->compress or return undef;
+ }
+ return $self;
}
sub noop {
@@ -557,7 +669,7 @@ sub _folders_or_subscribed {
{
my @list;
if ($what) {
- my $sep = $self->separator($what);
+ my $sep = $self->separator($what) || $self->separator(undef);
last unless defined $sep;
my $whatsub = $what =~ m/\Q${sep}\E$/ ? "$what*" : "$what$sep*";
@@ -566,8 +678,10 @@ sub _folders_or_subscribed {
shift @$tref; # remove command
push @list, @$tref;
- my $exists = $self->exists($what) or last;
- if ($exists) {
+ # BUG?: this behavior has been around since 2.x, why?
+ my $cansel = $self->selectable($what);
+ last unless defined $cansel;
+ if ($cansel) {
$tref = $self->$method( undef, $what ) or last;
shift @$tref; # remove command
push @list, @$tref;
@@ -1051,16 +1165,32 @@ sub reconnect {
if ( $self->IsAuthenticated ) {
$self->_debug("reconnect called but already authenticated");
- return $self;
+ return 1;
+ }
+
+ # safeguard from deep recursion via connect
+ if ( $self->{_doing_reconnect} ) {
+ $self->_debug("recursive call to reconnect, returning 0\n");
+ $self->LastError("unexpected reconnect recursion")
+ unless $self->LastError;
+ return 0;
}
my $einfo = $self->LastError || "";
$self->_debug( "reconnecting to ", $self->Server, ", last error: $einfo" );
+ $self->{_doing_reconnect} = 1;
# reconnect and select appropriate folder
- $self->connect or return undef;
+ my $ret;
+ if ( $self->connect ) {
+ $ret = 1;
+ if ( defined $self->Folder ) {
+ $ret = defined( $self->select( $self->Folder ) ) ? 1 : undef;
+ }
+ }
- return ( defined $self->Folder ) ? $self->select( $self->Folder ) : $self;
+ delete $self->{_doing_reconnect};
+ return $ret ? 1 : $ret;
}
# wrapper for _imap_command_do to enable retrying on lost connections
@@ -1091,11 +1221,15 @@ sub _imap_command {
# BUG? reconnect if caller ignored/missed earlier errors?
# or $self->LastError =~ /NO not connected/
);
- if ( $self->reconnect ) {
- $self->_debug("reconnect successful on try #$tries");
+ my $ret = $self->reconnect;
+ if ($ret) {
+ $self->_debug("reconnect success($ret) on try #$tries/$retry");
+ }
+ elsif ( defined $ret and $ret == 0 ) { # escaping recursion
+ return undef;
}
else {
- $self->_debug("reconnect failed on try #$tries");
+ $self->_debug("reconnect failure on try #$tries/$retry");
push( @err, $self->LastError ) if $self->LastError;
}
}
@@ -1340,10 +1474,10 @@ sub _send_bytes($) {
local $SIG{PIPE} = 'IGNORE'; # handle SIGPIPE as normal error
+ my $socket = $self->Socket;
while ( $total < length $$byteref ) {
my $written =
- syswrite( $self->Socket, $$byteref, length($$byteref) - $total,
- $total );
+ syswrite( $socket, $$byteref, length($$byteref) - $total, $total );
if ( defined $written ) {
$temperrs = 0;
@@ -1364,7 +1498,8 @@ sub _send_bytes($) {
# Unconnected might be apropos for more than just these?
my $emsg = $! ? "$!" : "no error caught";
- $self->State(Unconnected) if ( $! == EPIPE or $! == ECONNRESET );
+ $self->State(Unconnected)
+ if ( $! == EPIPE or $! == ECONNRESET or $! == EBADF );
$self->LastError("Write failed '$emsg'");
return undef; # no luck
@@ -1620,6 +1755,12 @@ sub _sysread {
}
sub _read_more {
+ my $self = shift;
+ my $rm = $self->Readmoremethod;
+ $rm ? $rm->( $self, @_ ) : $self->__read_more(@_);
+}
+
+sub __read_more {
my $self = shift;
my $opt = ref( $_[0] ) eq "HASH" ? shift : {};
my ( $socket, $timeout ) = @_;
@@ -1756,7 +1897,7 @@ sub _disconnect {
local ($@); # avoid stomping on global $@
eval { $sock->close };
}
- $self;
+ return $self;
}
# LIST/XLIST/LSUB Response
@@ -2710,8 +2851,8 @@ sub is_parent {
sub selectable {
my ( $self, $f ) = @_;
- my $info = $self->list( "", $f );
- defined $info ? not( grep /NoSelect/i, @$info ) : undef;
+ my $info = $self->list( "", $f ) or return undef;
+ return not( grep /\b\\Noselect\b/i, @$info );
}
# append( $self, $folder, $text [, $optmsg] )
@@ -2992,6 +3133,7 @@ sub authenticate {
: ( "", $client->User ),
defined $client->Password ? $client->Password : "",
),
+ ''
);
};
}
@@ -3250,6 +3392,19 @@ sub unseen_count {
return $r;
}
+sub State($) {
+ my ( $self, $state ) = @_;
+
+ if ( defined $state ) {
+ $self->{State} = $state;
+
+ # discard cached capability info after authentication
+ delete $self->{CAPABILITY} if ( $state == Authenticated );
+ }
+
+ return defined( $self->{State} ) ? $self->{State} : Unconnected;
+}
+
sub Status { shift->State }
sub IsUnconnected { shift->State == Unconnected }
sub IsConnected { shift->State >= Connected }
diff --git a/Mail-IMAPClient-3.28/lib/Mail/IMAPClient.pod b/Mail-IMAPClient-3.30/lib/Mail/IMAPClient.pod
similarity index 97%
rename from Mail-IMAPClient-3.28/lib/Mail/IMAPClient.pod
rename to Mail-IMAPClient-3.30/lib/Mail/IMAPClient.pod
index 6a4b12c..f445bc2 100644
--- a/Mail-IMAPClient-3.28/lib/Mail/IMAPClient.pod
+++ b/Mail-IMAPClient-3.30/lib/Mail/IMAPClient.pod
@@ -649,7 +649,11 @@ The B method returns an array of capabilities as returned
by the CAPABILITY IMAP Client command, or a reference to an array of
capabilities if called in scalar context. If the CAPABILITY IMAP
Client command fails for any reason then the B method will
-return C.
+return C. Supported capabilities are cached by the client,
+however, this cache is deleted after a connection is set to
+I and when L is called.
+
+See also L.
=head2 close
@@ -668,6 +672,18 @@ Note: this closes the currently selected folder, not the IMAP session.
See also L, L, and RFC3501.
+=head2 compress
+
+Example:
+
+ $imap->compress or die "Could not enable RFC4978 compression: $@\n";
+
+The B method accepts no arguments. This method is used to
+instruct the server to use the DEFLATE (RFC1951) compression
+extension. See the L attribute for how to specify arguments for use during the the initialization process.
+
+Version note: method added in Mail::IMAPClient 3.30
+
=head2 connect
Example:
@@ -1142,9 +1158,12 @@ For example:
# Prints:
# Projects/Completed, Projects/Ongoing
-Notice that if you just want to list a folder's subfolders (and not
-the folder itself), then you need to include the hierarchy separator
-character (as returned by the L method).
+Please note that documentation previously suggested that if you just
+want to list a folder's subfolders (and not the folder itself), then
+you need to include the hierarchy separator character (as returned by
+the L method). However, this does not match the behavior
+of the existing implementation, so you will need to manually exclude
+the parent folder from the results.
=head2 xlist_folders
@@ -1458,6 +1477,8 @@ and $@ is set. The methods L, L, and L may
automatically invoke B see the documentation of each method for
details.
+If the L parameter is set, the L method will automatically be called after successful authentication.
+
See also L and L for additional information
regarding ways of authenticating with a server via SASL and/or
PROXYAUTH.
@@ -2834,6 +2855,22 @@ will (except of course for that inevitable last transaction).
The default I value is set to five (5) in order to conserve
memory.
+=head2 Compress
+
+If set, Mail::IMAPClient attempts to enable use of the RFC4978
+COMPRESS DEFLATE extension. This requires that the server supports
+this CAPABILITY. This attribute can be set to a true value to enable
+or an ARRAYREF to control the arguments used in the call to
+Compress::Zlib::deflateInit().
+
+Mail::IMAPClient will automatically use L to
+deflate/inflate the data to/from the server. This attribute is used
+in the L method.
+
+See also L and L.
+
+Version note: attribute added in Mail::IMAPClient 3.30
+
=head2 Debug
Example:
@@ -2914,20 +2951,12 @@ Example:
# or:
$imap->Fast_io($true_or_false);
-The I parameter controls whether or not your
-Mail::IMAPClient object will attempt to use buffered (i.e. "Fast")
-I/O. It is turned on by default. If you turn it off you will
-definitely slow down your program, often to a painful degree.
-However, if you are experience problems you may want to try this just
-to see if it helps. If it does then that means you have found a bug
-and should report it immediately (by following the instructions in the
-section on L"REPORTING BUGS">). Even if it doesn't fix the problem,
-testing with both I turned on and with it turned off will
-often aid in identifying the source of the problem. (If it doesn't
-help you, it may help me when you report it!)
+The I parameter controls whether or not the Mail::IMAPClient
+object will attempt to use non-blocking I/O on the IMAP socket. It is
+turned on by default (unless the caller provides the socket to be
+used).
-Lately there have not been any bugs associated with I so this
-parameter may become deprecated in the future.
+See also L.
=head2 Folder
@@ -3056,10 +3085,11 @@ Example:
# or:
$imap->Port($new_value);
-Specifies the port on which the IMAP server is listening. The default
-is 143, which is the standard IMAP port. Can be supplied with the
-L method call or separately by calling the L object
-method.
+Specifies the port on which the IMAP server is listening. A default
+value of 993 (if L is true) or 143 is set during a call to
+L if no value is provided by the caller. This argument can
+be supplied with the L method call or separately by calling the
+L object method.
=head2 Prewritemethod
@@ -3186,6 +3216,18 @@ object itself.
See also L.
+=head2 Readmoremethod
+
+B should contain a reference to a subroutine that will
+replace/enhance the behavior of the internal _read_more() method. The
+subroutine will be passed the following arguments: first the used
+Mail::IMAPClient object. Second, a reference to a socket. Third, a
+timeout value which is used as the timeout value for CORE::select() by
+default. Depending upon changes/features introduced by Readmethod
+changes may be required here.
+
+Version note: attribute added in Mail::IMAPClient 3.30
+
=head2 Reconnectretry
If an IMAP connection sits idle too long, the connection may be closed
diff --git a/Mail-IMAPClient-3.28/lib/Mail/IMAPClient/BodyStructure.pm b/Mail-IMAPClient-3.30/lib/Mail/IMAPClient/BodyStructure.pm
similarity index 99%
rename from Mail-IMAPClient-3.28/lib/Mail/IMAPClient/BodyStructure.pm
rename to Mail-IMAPClient-3.30/lib/Mail/IMAPClient/BodyStructure.pm
index 0a91d2b..589fd9c 100644
--- a/Mail-IMAPClient-3.28/lib/Mail/IMAPClient/BodyStructure.pm
+++ b/Mail-IMAPClient-3.30/lib/Mail/IMAPClient/BodyStructure.pm
@@ -164,6 +164,12 @@ sub new
$parser->envelope($envelope);
}
+sub parse_string
+{ my ($class, $envelope) = @_;
+ $envelope = "(" . $envelope . ")" unless ( $envelope =~ /^\(/ );
+ $parser->envelopestruct($envelope);
+}
+
sub from_addresses { shift->_addresses(from => 1) }
sub sender_addresses { shift->_addresses(sender => 1) }
sub replyto_addresses { shift->_addresses(replyto => 1) }
diff --git a/Mail-IMAPClient-3.28/lib/Mail/IMAPClient/BodyStructure/Parse.grammar b/Mail-IMAPClient-3.30/lib/Mail/IMAPClient/BodyStructure/Parse.grammar
similarity index 100%
rename from Mail-IMAPClient-3.28/lib/Mail/IMAPClient/BodyStructure/Parse.grammar
rename to Mail-IMAPClient-3.30/lib/Mail/IMAPClient/BodyStructure/Parse.grammar
diff --git a/Mail-IMAPClient-3.28/lib/Mail/IMAPClient/BodyStructure/Parse.pm b/Mail-IMAPClient-3.30/lib/Mail/IMAPClient/BodyStructure/Parse.pm
similarity index 100%
rename from Mail-IMAPClient-3.28/lib/Mail/IMAPClient/BodyStructure/Parse.pm
rename to Mail-IMAPClient-3.30/lib/Mail/IMAPClient/BodyStructure/Parse.pm
diff --git a/Mail-IMAPClient-3.28/lib/Mail/IMAPClient/BodyStructure/Parse.pod b/Mail-IMAPClient-3.30/lib/Mail/IMAPClient/BodyStructure/Parse.pod
similarity index 100%
rename from Mail-IMAPClient-3.28/lib/Mail/IMAPClient/BodyStructure/Parse.pod
rename to Mail-IMAPClient-3.30/lib/Mail/IMAPClient/BodyStructure/Parse.pod
diff --git a/Mail-IMAPClient-3.28/lib/Mail/IMAPClient/MessageSet.pm b/Mail-IMAPClient-3.30/lib/Mail/IMAPClient/MessageSet.pm
similarity index 100%
rename from Mail-IMAPClient-3.28/lib/Mail/IMAPClient/MessageSet.pm
rename to Mail-IMAPClient-3.30/lib/Mail/IMAPClient/MessageSet.pm
diff --git a/Mail-IMAPClient-3.28/lib/Mail/IMAPClient/Thread.grammar b/Mail-IMAPClient-3.30/lib/Mail/IMAPClient/Thread.grammar
similarity index 100%
rename from Mail-IMAPClient-3.28/lib/Mail/IMAPClient/Thread.grammar
rename to Mail-IMAPClient-3.30/lib/Mail/IMAPClient/Thread.grammar
diff --git a/Mail-IMAPClient-3.28/lib/Mail/IMAPClient/Thread.pm b/Mail-IMAPClient-3.30/lib/Mail/IMAPClient/Thread.pm
similarity index 100%
rename from Mail-IMAPClient-3.28/lib/Mail/IMAPClient/Thread.pm
rename to Mail-IMAPClient-3.30/lib/Mail/IMAPClient/Thread.pm
diff --git a/Mail-IMAPClient-3.28/lib/Mail/IMAPClient/Thread.pod b/Mail-IMAPClient-3.30/lib/Mail/IMAPClient/Thread.pod
similarity index 100%
rename from Mail-IMAPClient-3.28/lib/Mail/IMAPClient/Thread.pod
rename to Mail-IMAPClient-3.30/lib/Mail/IMAPClient/Thread.pod
diff --git a/Mail-IMAPClient-3.28/prepare_dist b/Mail-IMAPClient-3.30/prepare_dist
similarity index 100%
rename from Mail-IMAPClient-3.28/prepare_dist
rename to Mail-IMAPClient-3.30/prepare_dist
diff --git a/Mail-IMAPClient-3.28/t/basic.t b/Mail-IMAPClient-3.30/t/basic.t
similarity index 100%
rename from Mail-IMAPClient-3.28/t/basic.t
rename to Mail-IMAPClient-3.30/t/basic.t
diff --git a/Mail-IMAPClient-3.28/t/body_string.t b/Mail-IMAPClient-3.30/t/body_string.t
similarity index 100%
rename from Mail-IMAPClient-3.28/t/body_string.t
rename to Mail-IMAPClient-3.30/t/body_string.t
diff --git a/Mail-IMAPClient-3.28/t/bodystructure.t b/Mail-IMAPClient-3.30/t/bodystructure.t
similarity index 91%
rename from Mail-IMAPClient-3.28/t/bodystructure.t
rename to Mail-IMAPClient-3.30/t/bodystructure.t
index 8bcf3e6..c81bfff 100644
--- a/Mail-IMAPClient-3.28/t/bodystructure.t
+++ b/Mail-IMAPClient-3.30/t/bodystructure.t
@@ -2,7 +2,7 @@
use strict;
use warnings;
-use Test::More tests => 27;
+use Test::More tests => 41;
BEGIN { use_ok('Mail::IMAPClient::BodyStructure') or exit; }
@@ -115,3 +115,37 @@ is_deeply( [ $bsobj->parts ], \@exp, 'bs9 parts' )
my $to = $env->to_addresses;
is_deeply( $to, [ '' ], "to_addresses" );
}
+
+# envelope: parse_string
+# date, subject, from, sender, reply-to, to, cc, bcc, in-reply-to, message-id
+{
+ my $str = q{"Mon, 29 Nov 2010 18:28:23 +0200" "subj" (("Phil Pearl" NIL "phil+from" "dom.loc")) (("Phil Pearl" NIL "phil+sender" "dom.loc")) () ((NIL NIL "phil+to" "dom.loc")) NIL NIL NIL ""};
+ my $env = Mail::IMAPClient::BodyStructure::Envelope->parse_string($str);
+ is( $env->subject, "subj", "subject" );
+ is( $env->inreplyto, "NIL", "inreplyto" );
+ is( $env->messageid, "", "messageid" );
+ is( $env->bcc, "NIL", "bcc" );
+ is( $env->cc, "NIL", "cc" );
+ is( $env->replyto, "NIL", "replyto" );
+
+ # personalname mailboxname hostname sourcename
+ my $to = $env->to_addresses;
+ is_deeply( $to, [ '' ], "to_addresses" );
+}
+
+# envelope: parse_string
+# date, subject, from, sender, reply-to, to, cc, bcc, in-reply-to, message-id
+{
+ my $str = q{("Mon, 29 Nov 2010 18:28:23 +0200" "subj" (("Phil Pearl" NIL "phil+from" "dom.loc")) (("Phil Pearl" NIL "phil+sender" "dom.loc")) () ((NIL NIL "phil+to" "dom.loc")) NIL NIL NIL "")};
+ my $env = Mail::IMAPClient::BodyStructure::Envelope->parse_string($str);
+ is( $env->subject, "subj", "subject" );
+ is( $env->inreplyto, "NIL", "inreplyto" );
+ is( $env->messageid, "", "messageid" );
+ is( $env->bcc, "NIL", "bcc" );
+ is( $env->cc, "NIL", "cc" );
+ is( $env->replyto, "NIL", "replyto" );
+
+ # personalname mailboxname hostname sourcename
+ my $to = $env->to_addresses;
+ is_deeply( $to, [ '' ], "to_addresses" );
+}
diff --git a/Mail-IMAPClient-3.28/t/fetch_hash.t b/Mail-IMAPClient-3.30/t/fetch_hash.t
similarity index 100%
rename from Mail-IMAPClient-3.28/t/fetch_hash.t
rename to Mail-IMAPClient-3.30/t/fetch_hash.t
diff --git a/Mail-IMAPClient-3.28/t/messageset.t b/Mail-IMAPClient-3.30/t/messageset.t
similarity index 100%
rename from Mail-IMAPClient-3.28/t/messageset.t
rename to Mail-IMAPClient-3.30/t/messageset.t
diff --git a/Mail-IMAPClient-3.28/t/pod.t b/Mail-IMAPClient-3.30/t/pod.t
similarity index 100%
rename from Mail-IMAPClient-3.28/t/pod.t
rename to Mail-IMAPClient-3.30/t/pod.t
diff --git a/Mail-IMAPClient-3.28/t/simple.t b/Mail-IMAPClient-3.30/t/simple.t
similarity index 100%
rename from Mail-IMAPClient-3.28/t/simple.t
rename to Mail-IMAPClient-3.30/t/simple.t
diff --git a/Mail-IMAPClient-3.28/t/thread.t b/Mail-IMAPClient-3.30/t/thread.t
similarity index 100%
rename from Mail-IMAPClient-3.28/t/thread.t
rename to Mail-IMAPClient-3.30/t/thread.t
diff --git a/Mail-IMAPClient-3.28/test_template.txt b/Mail-IMAPClient-3.30/test_template.txt
similarity index 100%
rename from Mail-IMAPClient-3.28/test_template.txt
rename to Mail-IMAPClient-3.30/test_template.txt
diff --git a/Makefile b/Makefile
index d888d0d..2564221 100644
--- a/Makefile
+++ b/Makefile
@@ -1,5 +1,5 @@
-# $Id: Makefile,v 1.84 2011/07/29 03:02:01 gilles Exp gilles $
+# $Id: Makefile,v 1.89 2011/11/13 08:53:12 gilles Exp gilles $
.PHONY: help usage all
@@ -20,21 +20,27 @@ usage:
@echo "make upload_ks"
@echo "make imapsync.exe"
@echo "make imapsync_elf_x86.bin"
+ @echo "make publish"
DIST_NAME=imapsync-$(VERSION)
DIST_FILE=$(DIST_NAME).tgz
DEB_FILE=$(DIST_NAME).deb
-VERSION=$(shell perl -I./Mail-IMAPClient-2.2.9 ./imapsync --version)
+
+VERSION=$(shell perl -I$(IMAPClient) ./imapsync --version)
VERSION_EXE=$(shell cat ./VERSION_EXE)
HELLO=$(shell date;uname -a)
+IMAPClient_2xx=./Mail-IMAPClient-2.2.9
+IMAPClient_3xx=./Mail-IMAPClient-3.30/lib
+IMAPClient=$(IMAPClient_3xx)
hello:
- echo "$(HELLO)"
+ echo "$(VERSION)"
+ echo "$(IMAPClient)"
-all: ChangeLog README VERSION
+all: ChangeLog README VERSION imapsync_elf_x86.bin
testp :
@@ -47,7 +53,7 @@ README: imapsync
perldoc -t imapsync > README
VERSION: imapsync
- perl -I./Mail-IMAPClient-2.2.9 ./imapsync --version > VERSION
+ perl -I./$(IMAPClient) ./imapsync --version > VERSION
.PHONY: clean clean_tilde clean_test
@@ -90,22 +96,23 @@ cidone:
###############
-.PHONY: test tests testp testf test3xx
+.PHONY: test tests testp testf test3xx testv2 testv3
test_quick : test_quick_3xx test_quick_229
test_quick_229: imapsync tests.sh
- CMD_PERL='perl -I./Mail-IMAPClient-2.2.9' /usr/bin/time sh -x tests.sh locallocal
+ CMD_PERL='perl -I./$(IMAPClient_2xx)' /usr/bin/time sh -x tests.sh locallocal
test_quick_3xx: imapsync tests.sh
- CMD_PERL='perl -I./Mail-IMAPClient-3.28/lib' /usr/bin/time sh -x tests.sh locallocal
+ CMD_PERL='perl -I./$(IMAPClient_3xx)' /usr/bin/time sh -x tests.sh locallocal
-testv2:
- CMD_PERL='perl -I./Mail-IMAPClient-2.2.9' /usr/bin/time sh tests.sh
+testv2: .test_229
+ CMD_PERL='perl -I./$(IMAPClient_2xx) /usr/bin/time sh tests.sh
touch .test_229
-testv3:
- CMD_PERL='perl -I./Mail-IMAPClient-3.28/lib' sh -x tests.sh
+testv3:.test_3xx
+ CMD_PERL='perl -I./$(IMAPClient_3xx)' sh -x tests.sh
+ touch .test_3xx
test: .test_229 .test_3xx
@@ -116,11 +123,11 @@ test3xx: .test_3xx
test229: .test_229
.test_229: imapsync tests.sh
- CMD_PERL='perl -I./Mail-IMAPClient-2.2.9' /usr/bin/time sh tests.sh 1>/dev/null
+ CMD_PERL='perl -I./$(IMAPClient_2xx)' /usr/bin/time sh tests.sh 1>/dev/null
touch .test_229
.test_3xx: imapsync tests.sh
- CMD_PERL='perl -I./Mail-IMAPClient-3.28/lib' /usr/bin/time sh tests.sh 1>/dev/null
+ CMD_PERL='perl -I./$(IMAPClient_3xx)' /usr/bin/time sh tests.sh 1>/dev/null
touch .test_3xx
testf: clean_test test
@@ -145,7 +152,7 @@ tests_win32: dosify_bat
# ssh Admin@c 'tasklist /NH /FO CSV'
tests_win32_dev: dosify_bat
- scp imapsync file.csv test2.bat Admin@c:'C:/msys/1.0/home/Admin/imapsync/'
+ scp imapsync file.txt test2.bat Admin@c:'C:/msys/1.0/home/Admin/imapsync/'
ssh Admin@c 'C:/msys/1.0/home/Admin/imapsync/test2.bat'
test_imapsync_exe: dosify_bat
@@ -171,23 +178,24 @@ imapsync.exe: imapsync build_exe.bat .dosify_bat
imapsync_elf_x86.bin: imapsync
rcsdiff imapsync
{ test 'vadrouille' = "`hostname`" && \
- pp -o imapsync_elf_x86.bin -I Mail-IMAPClient-3.28/lib \
+ pp -o imapsync_elf_x86.bin -I $(IMAPClient_3xx) \
-M Mail::IMAPClient -M IO::Socket -M IO::Socket::SSL \
-M Digest::MD5 -M Digest::HMAC_MD5 -M Term::ReadKey \
-M Authen::NTLM \
imapsync ; \
} || :
{ test 'petite' = "`hostname`" && \
- pp -o imapsync_elf_x86.bin -I Mail-IMAPClient-3.28/lib \
+ pp -o imapsync_elf_x86.bin -I $(IMAPClient_3xx) \
+ -I NTLM-1.09/blib/lib \
-M Mail::IMAPClient -M IO::Socket -M IO::Socket::SSL \
-M Digest::MD5 -M Digest::HMAC_MD5 -M Term::ReadKey \
-M Authen::NTLM \
-M Tie::Hash::NamedCapture \
- -a '/usr/lib/perl/5.10.0/auto/POSIX/SigAction;auto/POSIX/SigAction' \
+ -a '/usr/lib/perl/5.10.1/auto/POSIX/SigAction;auto/POSIX/SigAction' \
imapsync ; \
} || :
{ test 'ks200821.kimsufi.com' = "`hostname`" && \
- pp -o imapsync_elf_x86.bin -I Mail-IMAPClient-3.28/lib \
+ pp -o imapsync_elf_x86.bin -I $(IMAPClient_3xx) \
-M Mail::IMAPClient -M IO::Socket -M IO::Socket::SSL \
-M Digest::MD5 -M Digest::HMAC_MD5 -M Term::ReadKey \
-M Authen::NTLM \
@@ -244,18 +252,19 @@ dist_prepa_exe: imapsync.exe
#cd $(DIST_PATH)/ && md5sum -c ./imapsync.exe.md5.txt
-
+.PHONY: publish upload_ks ks
ks:
rsync -avz --delete --exclude imapsync.exe \
. imapsync@ks.lamiral.info:public_html/imapsync/
+publish: upload_ks ks
PUBLIC_FILES = ./ChangeLog ./COPYING ./CREDITS ./FAQ \
./index.shtml ./INSTALL ./TIME \
./logo_imapsync.png ./logo_imapsync_s.png \
./paypal.shtml ./paypal_return.shtml ./paypal_return_support.shtml \
-./README ./style.css ./TODO ./VERSION ./VERSION_EXE ./memo
+./README ./style.css ./TODO ./VERSION ./VERSION_EXE ./memo ./file.txt
upload_ks:
rsync -lptvHzP $(PUBLIC_FILES) \
diff --git a/NTLM-1.05/README b/NTLM-1.05/README
deleted file mode 100644
index 12c9c14..0000000
--- a/NTLM-1.05/README
+++ /dev/null
@@ -1,65 +0,0 @@
-NTLM Authentication Scheme
-==========================
-
-This module implements the NTLM authentication mechanism. It can be
-used to perform NTLM style authentication for any desired protocol.
-
-The module works well with the Mail::IMAPClient module in the
-"authenticate" method, however I had to make a change to that method
-for it to work. The following line (2511 in version 2.1.4):
-
- ($code) = $o->[DATA] =~ /^\+ (.*)$/ ;
-
-needed to be changed to:
-
- ($code) = $o->[DATA] =~ /^\+(.*)$/ ;
-
-as the initial NTLM challenge is empty.
-
-This module also works well with LWP::Authen::Ntlm , allowing LWP::UserAgent
-and/or WWW::Mechanise to automate/browse/fetch/etc remote Microsoft Windows
-servers running NTLM authentication.
-Example use is like this(note the fact that NTLM.pm is NOT explicitly used!):
-
- use WWW::Mechanize;
- $mech = WWW::Mechanize->new(keep_alive=>1);
- $mech->no_proxy('my.server');
- $mech->credentials('my.server:80', '', "my_domain\\my_user", my_pass);
- $response = $mech->get( $url );
-
-
-INSTALLATION
-
-To install this application:
-
- perl Makefile.PL
- make
- make test
- make install
-
-DEPENDENCIES
-
-This module requires the MIME::Base64 module, and Digest::HMAC_MD5
-
-COPYRIGHT AND LICENCE
-
-This application is free software. This code is distributed in the hope that
-it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty
-of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. You may freely use,
-copy and distribute this software as long as all copyright notices, including
-this notice, remain intact and that you do not try to claim it as your own or
-try to sell it. You may alter the code as long as you send me any diffs (this
-will ensure that you have an easier time of it when you upgrade ;).
-
-Parts of this code Copyright (C) 2007 David (Buzz) Bussenschutt.
-
-
-Perl port of this code is Copyright (C) 2001 Mark Bush.
-
-
-The code is originally based on fetchmail code which is Copyright (C) 1997 Eric
-S. Raymond.
-
-Fetchmail uses SMB/Netbios code from samba which is Copyright (C)
-Andrew Tridgell 1992-1998 with modifications from Jeremy Allison.
-
diff --git a/NTLM-1.09/COPYING-Artistic b/NTLM-1.09/COPYING-Artistic
new file mode 100644
index 0000000..4ff3f42
--- /dev/null
+++ b/NTLM-1.09/COPYING-Artistic
@@ -0,0 +1,127 @@
+ The "Artistic License"
+
+ Preamble
+
+The intent of this document is to state the conditions under which a
+Package may be copied, such that the Copyright Holder maintains some
+semblance of artistic control over the development of the package,
+while giving the users of the package the right to use and distribute
+the Package in a more-or-less customary fashion, plus the right to make
+reasonable modifications.
+
+Definitions:
+
+ "Package" refers to the collection of files distributed by the
+ Copyright Holder, and derivatives of that collection of files
+ created through textual modification.
+
+ "Standard Version" refers to such a Package if it has not been
+ modified, or has been modified in accordance with the wishes
+ of the Copyright Holder as specified below.
+
+ "Copyright Holder" is whoever is named in the copyright or
+ copyrights for the package.
+
+ "You" is you, if you're thinking about copying or distributing
+ this Package.
+
+ "Reasonable copying fee" is whatever you can justify on the
+ basis of media cost, duplication charges, time of people involved,
+ and so on. (You will not be required to justify it to the
+ Copyright Holder, but only to the computing community at large
+ as a market that must bear the fee.)
+
+ "Freely Available" means that no fee is charged for the item
+ itself, though there may be fees involved in handling the item.
+ It also means that recipients of the item may redistribute it
+ under the same conditions they received it.
+
+1. You may make and give away verbatim copies of the source form of the
+Standard Version of this Package without restriction, provided that you
+duplicate all of the original copyright notices and associated disclaimers.
+
+2. You may apply bug fixes, portability fixes and other modifications
+derived from the Public Domain or from the Copyright Holder. A Package
+modified in such a way shall still be considered the Standard Version.
+
+3. You may otherwise modify your copy of this Package in any way, provided
+that you insert a prominent notice in each changed file stating how and
+when you changed that file, and provided that you do at least ONE of the
+following:
+
+ a) place your modifications in the Public Domain or otherwise make them
+ Freely Available, such as by posting said modifications to Usenet or
+ an equivalent medium, or placing the modifications on a major archive
+ site such as uunet.uu.net, or by allowing the Copyright Holder to include
+ your modifications in the Standard Version of the Package.
+
+ b) use the modified Package only within your corporation or organization.
+
+ c) rename any non-standard executables so the names do not conflict
+ with standard executables, which must also be provided, and provide
+ a separate manual page for each non-standard executable that clearly
+ documents how it differs from the Standard Version.
+
+ d) make other distribution arrangements with the Copyright Holder.
+
+4. You may distribute the programs of this Package in object code or
+executable form, provided that you do at least ONE of the following:
+
+ a) distribute a Standard Version of the executables and library files,
+ together with instructions (in the manual page or equivalent) on where
+ to get the Standard Version.
+
+ b) accompany the distribution with the machine-readable source of
+ the Package with your modifications.
+
+ c) give non-standard executables non-standard names, and clearly
+ document the differences in manual pages (or equivalent), together
+ with instructions on where to get the Standard Version.
+
+ d) make other distribution arrangements with the Copyright Holder.
+
+5. You may charge a reasonable copying fee for any distribution of this
+Package. You may charge any fee you choose for support of this
+Package. You may not charge a fee for this Package itself. However,
+you may distribute this Package in aggregate with other (possibly
+commercial) programs as part of a larger (possibly commercial) software
+distribution provided that you do not advertise this Package as a
+product of your own. You may embed this Package's interpreter within
+an executable of yours (by linking); this shall be construed as a mere
+form of aggregation, provided that the complete Standard Version of the
+interpreter is so embedded.
+
+6. The scripts and library files supplied as input to or produced as
+output from the programs of this Package do not automatically fall
+under the copyright of this Package, but belong to whoever generated
+them, and may be sold commercially, and may be aggregated with this
+Package. If such scripts or library files are aggregated with this
+Package via the so-called "undump" or "unexec" methods of producing a
+binary executable image, then distribution of such an image shall
+neither be construed as a distribution of this Package nor shall it
+fall under the restrictions of Paragraphs 3 and 4, provided that you do
+not represent such an executable image as a Standard Version of this
+Package.
+
+7. C subroutines (or comparably compiled subroutines in other
+languages) supplied by you and linked into this Package in order to
+emulate subroutines and variables of the language defined by this
+Package shall not be considered part of this Package, but are the
+equivalent of input as in Paragraph 6, provided these subroutines do
+not change the language in any way that would cause it to fail the
+regression tests for the language.
+
+8. Aggregation of this Package with a commercial distribution is always
+permitted provided that the use of this Package is embedded; that is,
+when no overt attempt is made to make this Package's interfaces visible
+to the end user of the commercial distribution. Such use shall not be
+construed as a distribution of this Package.
+
+9. The name of the Copyright Holder may not be used to endorse or promote
+products derived from this software without specific prior written permission.
+
+10. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+
+ The End
diff --git a/NTLM-1.09/COPYING-GPL b/NTLM-1.09/COPYING-GPL
new file mode 100644
index 0000000..16df98e
--- /dev/null
+++ b/NTLM-1.09/COPYING-GPL
@@ -0,0 +1,250 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 1, February 1989
+
+ Copyright (C) 1989 Free Software Foundation, Inc.
+ 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The license agreements of most software companies try to keep users
+at the mercy of those companies. By contrast, our General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. The
+General Public License applies to the Free Software Foundation's
+software and to any other program whose authors commit to using it.
+You can use it for your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Specifically, the General Public License is designed to make
+sure that you have the freedom to give away or sell copies of free
+software, that you receive source code or can get it if you want it,
+that you can change the software or use pieces of it in new free
+programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of a such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must tell them their rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License Agreement applies to any program or other work which
+contains a notice placed by the copyright holder saying it may be
+distributed under the terms of this General Public License. The
+"Program", below, refers to any such program or work, and a "work based
+on the Program" means either the Program or any work containing the
+Program or a portion of it, either verbatim or with modifications. Each
+licensee is addressed as "you".
+
+ 1. You may copy and distribute verbatim copies of the Program's source
+code as you receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice and
+disclaimer of warranty; keep intact all the notices that refer to this
+General Public License and to the absence of any warranty; and give any
+other recipients of the Program a copy of this General Public License
+along with the Program. You may charge a fee for the physical act of
+transferring a copy.
+
+ 2. You may modify your copy or copies of the Program or any portion of
+it, and copy and distribute such modifications under the terms of Paragraph
+1 above, provided that you also do the following:
+
+ a) cause the modified files to carry prominent notices stating that
+ you changed the files and the date of any change; and
+
+ b) cause the whole of any work that you distribute or publish, that
+ in whole or in part contains the Program or any part thereof, either
+ with or without modifications, to be licensed at no charge to all
+ third parties under the terms of this General Public License (except
+ that you may choose to grant warranty protection to some or all
+ third parties, at your option).
+
+ c) If the modified program normally reads commands interactively when
+ run, you must cause it, when started running for such interactive use
+ in the simplest and most usual way, to print or display an
+ announcement including an appropriate copyright notice and a notice
+ that there is no warranty (or else, saying that you provide a
+ warranty) and that users may redistribute the program under these
+ conditions, and telling the user how to view a copy of this General
+ Public License.
+
+ d) You may charge a fee for the physical act of transferring a
+ copy, and you may at your option offer warranty protection in
+ exchange for a fee.
+
+Mere aggregation of another independent work with the Program (or its
+derivative) on a volume of a storage or distribution medium does not bring
+the other work under the scope of these terms.
+
+ 3. You may copy and distribute the Program (or a portion or derivative of
+it, under Paragraph 2) in object code or executable form under the terms of
+Paragraphs 1 and 2 above provided that you also do one of the following:
+
+ a) accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of
+ Paragraphs 1 and 2 above; or,
+
+ b) accompany it with a written offer, valid for at least three
+ years, to give any third party free (except for a nominal charge
+ for the cost of distribution) a complete machine-readable copy of the
+ corresponding source code, to be distributed under the terms of
+ Paragraphs 1 and 2 above; or,
+
+ c) accompany it with the information you received as to where the
+ corresponding source code may be obtained. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form alone.)
+
+Source code for a work means the preferred form of the work for making
+modifications to it. For an executable file, complete source code means
+all the source code for all modules it contains; but, as a special
+exception, it need not include source code for modules which are standard
+libraries that accompany the operating system on which the executable
+file runs, or for standard header files or definitions files that
+accompany that operating system.
+
+ 4. You may not copy, modify, sublicense, distribute or transfer the
+Program except as expressly provided under this General Public License.
+Any attempt otherwise to copy, modify, sublicense, distribute or transfer
+the Program is void, and will automatically terminate your rights to use
+the Program under this License. However, parties who have received
+copies, or rights to use copies, from you under this General Public
+License will not have their licenses terminated so long as such parties
+remain in full compliance.
+
+ 5. By copying, distributing or modifying the Program (or any work based
+on the Program) you indicate your acceptance of this license to do so,
+and all its terms and conditions.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the original
+licensor to copy, distribute or modify the Program subject to these
+terms and conditions. You may not impose any further restrictions on the
+recipients' exercise of the rights granted herein.
+
+ 7. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of the license which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+the license, you may choose any version ever published by the Free Software
+Foundation.
+
+ 8. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 9. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 10. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ Appendix: How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to humanity, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these
+terms.
+
+ To do so, attach the following notices to the program. It is safest to
+attach them to the start of each source file to most effectively convey
+the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found.
+
+
+ Copyright (C) 19yy
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 1, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) 19xx name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the
+appropriate parts of the General Public License. Of course, the
+commands you use may be called something other than `show w' and `show
+c'; they could even be mouse-clicks or menu items--whatever suits your
+program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the
+ program `Gnomovision' (a program to direct compilers to make passes
+ at assemblers) written by James Hacker.
+
+ , 1 April 1989
+ Ty Coon, President of Vice
+
+That's all there is to it!
diff --git a/NTLM-1.05/Changes b/NTLM-1.09/Changes
similarity index 83%
rename from NTLM-1.05/Changes
rename to NTLM-1.09/Changes
index 115231e..06c6845 100644
--- a/NTLM-1.05/Changes
+++ b/NTLM-1.09/Changes
@@ -1,5 +1,16 @@
Revision history for Perl NTLM authentication suite
+1.09 8 Sep 2011
+ - fix CPAN ticket # 70703
+
+1.08 6 Apr 2011
+ - fix CPAN ticket # 39925
+
+1.07 - not released
+
+1.06 24 Mar 2011
+ - relicense as GPL+ or Artistic
+
1.05 19 Jun 2008
- implement OO interface - thanks to Dmitry Karasik
- fix minor bug in last release - thanks to Dmitry Karasik
diff --git a/NTLM-1.05/DES/DES.pm b/NTLM-1.09/DES/DES.pm
similarity index 100%
rename from NTLM-1.05/DES/DES.pm
rename to NTLM-1.09/DES/DES.pm
diff --git a/NTLM-1.05/DES/Makefile b/NTLM-1.09/DES/Makefile
similarity index 78%
rename from NTLM-1.05/DES/Makefile
rename to NTLM-1.09/DES/Makefile
index 747da8d..212e76e 100644
--- a/NTLM-1.05/DES/Makefile
+++ b/NTLM-1.09/DES/Makefile
@@ -1,17 +1,20 @@
# This Makefile is for the Authen::NTLM::DES extension to perl.
#
# It was generated automatically by MakeMaker version
-# 6.30_01 (Revision: Revision: 4535 ) from the contents of
+# 6.55_02 (Revision: 65502) from the contents of
# Makefile.PL. Don't edit this file, edit Makefile.PL instead.
#
# ANY CHANGES MADE HERE WILL BE LOST!
#
# MakeMaker ARGV: ()
#
+
# MakeMaker Parameters:
# AUTHOR => q[David (Buzz) Bussenschutt , Mark Bush ]
+# BUILD_REQUIRES => { }
# NAME => q[Authen::NTLM::DES]
+# PREREQ_PM => { }
# VERSION_FROM => q[DES.pm]
# --- MakeMaker post_initialize section:
@@ -19,29 +22,28 @@
# --- MakeMaker const_config section:
-# These definitions are from config.sh (via /usr/lib/perl/5.8/Config.pm)
-
-# They may have been overridden via Makefile.PL or on the command line
+# These definitions are from config.sh (via /usr/lib/perl/5.10/Config.pm).
+# They may have been overridden via Makefile.PL or on the command line.
AR = ar
CC = cc
CCCDLFLAGS = -fPIC
CCDLFLAGS = -Wl,-E
DLEXT = so
DLSRC = dl_dlopen.xs
+EXE_EXT =
+FULL_AR = /usr/bin/ar
LD = cc
-LDDLFLAGS = -shared -L/usr/local/lib
-LDFLAGS = -L/usr/local/lib
-LIBC = /lib/libc-2.7.so
+LDDLFLAGS = -shared -O2 -g -L/usr/local/lib -fstack-protector
+LDFLAGS = -fstack-protector -L/usr/local/lib
+LIBC = /lib/libc-2.11.1.so
LIB_EXT = .a
OBJ_EXT = .o
OSNAME = linux
-OSVERS = 2.6.24-19-server
+OSVERS = 2.6.24-28-server
RANLIB = :
-SITELIBEXP = /usr/local/share/perl/5.8.8
-SITEARCHEXP = /usr/local/lib/perl/5.8.8
+SITELIBEXP = /usr/local/share/perl/5.10.1
+SITEARCHEXP = /usr/local/lib/perl/5.10.1
SO = so
-EXE_EXT =
-FULL_AR = /usr/bin/ar
VENDORARCHEXP = /usr/lib/perl5
VENDORLIBEXP = /usr/share/perl5
@@ -73,15 +75,15 @@ PREFIX = /usr
PERLPREFIX = $(PREFIX)
SITEPREFIX = $(PREFIX)/local
VENDORPREFIX = $(PREFIX)
-INSTALLPRIVLIB = $(PERLPREFIX)/share/perl/5.8
+INSTALLPRIVLIB = $(PERLPREFIX)/share/perl/5.10
DESTINSTALLPRIVLIB = $(DESTDIR)$(INSTALLPRIVLIB)
-INSTALLSITELIB = $(SITEPREFIX)/share/perl/5.8.8
+INSTALLSITELIB = $(SITEPREFIX)/share/perl/5.10.1
DESTINSTALLSITELIB = $(DESTDIR)$(INSTALLSITELIB)
INSTALLVENDORLIB = $(VENDORPREFIX)/share/perl5
DESTINSTALLVENDORLIB = $(DESTDIR)$(INSTALLVENDORLIB)
-INSTALLARCHLIB = $(PERLPREFIX)/lib/perl/5.8
+INSTALLARCHLIB = $(PERLPREFIX)/lib/perl/5.10
DESTINSTALLARCHLIB = $(DESTDIR)$(INSTALLARCHLIB)
-INSTALLSITEARCH = $(SITEPREFIX)/lib/perl/5.8.8
+INSTALLSITEARCH = $(SITEPREFIX)/lib/perl/5.10.1
DESTINSTALLSITEARCH = $(DESTDIR)$(INSTALLSITEARCH)
INSTALLVENDORARCH = $(VENDORPREFIX)/lib/perl5
DESTINSTALLVENDORARCH = $(DESTDIR)$(INSTALLVENDORARCH)
@@ -109,14 +111,14 @@ INSTALLSITEMAN3DIR = $(SITEPREFIX)/man/man3
DESTINSTALLSITEMAN3DIR = $(DESTDIR)$(INSTALLSITEMAN3DIR)
INSTALLVENDORMAN3DIR = $(VENDORPREFIX)/share/man/man3
DESTINSTALLVENDORMAN3DIR = $(DESTDIR)$(INSTALLVENDORMAN3DIR)
-PERL_LIB = /usr/share/perl/5.8
-PERL_ARCHLIB = /usr/lib/perl/5.8
+PERL_LIB = /usr/share/perl/5.10
+PERL_ARCHLIB = /usr/lib/perl/5.10
LIBPERL_A = libperl.a
FIRST_MAKEFILE = Makefile
MAKEFILE_OLD = Makefile.old
MAKE_APERL_FILE = Makefile.aperl
PERLMAINCC = $(CC)
-PERL_INC = /usr/lib/perl/5.8/CORE
+PERL_INC = /usr/lib/perl/5.10/CORE
PERL = /usr/bin/perl
FULLPERL = /usr/bin/perl
ABSPERL = $(PERL)
@@ -127,17 +129,19 @@ PERLRUNINST = $(PERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)"
FULLPERLRUNINST = $(FULLPERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)"
ABSPERLRUNINST = $(ABSPERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)"
PERL_CORE = 0
+PERM_DIR = 755
PERM_RW = 644
PERM_RWX = 755
-MAKEMAKER = /usr/share/perl/5.8/ExtUtils/MakeMaker.pm
-MM_VERSION = 6.30_01
-MM_REVISION = Revision: 4535
+MAKEMAKER = /usr/share/perl/5.10/ExtUtils/MakeMaker.pm
+MM_VERSION = 6.55_02
+MM_REVISION = 65502
# FULLEXT = Pathname for extension directory (eg Foo/Bar/Oracle).
# BASEEXT = Basename part of FULLEXT. May be just equal FULLEXT. (eg Oracle)
# PARENT_NAME = NAME without BASEEXT and no trailing :: (eg Foo::Bar)
# DLBASE = Basename part of dynamic library. May be just equal BASEEXT.
+MAKE = make
FULLEXT = Authen/NTLM/DES
BASEEXT = DES
PARENT_NAME = Authen::NTLM
@@ -183,13 +187,13 @@ PM_TO_BLIB = DES.pm \
# --- MakeMaker platform_constants section:
-MM_Unix_VERSION = 1.50_01
+MM_Unix_VERSION = 6.55_02
PERL_MALLOC_DEF = -DPERL_EXTMALLOC_DEF -Dmalloc=Perl_malloc -Dfree=Perl_mfree -Drealloc=Perl_realloc -Dcalloc=Perl_calloc
# --- MakeMaker tool_autosplit section:
# Usage: $(AUTOSPLITFILE) FileToSplit AutoDirToSplitInto
-AUTOSPLITFILE = $(ABSPERLRUN) -e 'use AutoSplit; autosplit($$ARGV[0], $$ARGV[1], 0, 1, 1)'
+AUTOSPLITFILE = $(ABSPERLRUN) -e 'use AutoSplit; autosplit($$ARGV[0], $$ARGV[1], 0, 1, 1)' --
@@ -201,7 +205,7 @@ SHELL = /bin/sh
CHMOD = chmod
CP = cp
MV = mv
-NOOP = $(SHELL) -c true
+NOOP = $(TRUE)
NOECHO = @
RM_F = rm -f
RM_RF = rm -rf
@@ -209,24 +213,26 @@ TEST_F = test -f
TOUCH = touch
UMASK_NULL = umask 0
DEV_NULL = > /dev/null 2>&1
-MKPATH = $(ABSPERLRUN) "-MExtUtils::Command" -e mkpath
-EQUALIZE_TIMESTAMP = $(ABSPERLRUN) "-MExtUtils::Command" -e eqtime
+MKPATH = $(ABSPERLRUN) -MExtUtils::Command -e 'mkpath' --
+EQUALIZE_TIMESTAMP = $(ABSPERLRUN) -MExtUtils::Command -e 'eqtime' --
+FALSE = false
+TRUE = true
ECHO = echo
ECHO_N = echo -n
UNINST = 0
VERBINST = 0
-MOD_INSTALL = $(ABSPERLRUN) -MExtUtils::Install -e 'install({@ARGV}, '\''$(VERBINST)'\'', 0, '\''$(UNINST)'\'');'
-DOC_INSTALL = $(ABSPERLRUN) "-MExtUtils::Command::MM" -e perllocal_install
-UNINSTALL = $(ABSPERLRUN) "-MExtUtils::Command::MM" -e uninstall
-WARN_IF_OLD_PACKLIST = $(ABSPERLRUN) "-MExtUtils::Command::MM" -e warn_if_old_packlist
+MOD_INSTALL = $(ABSPERLRUN) -MExtUtils::Install -e 'install([ from_to => {@ARGV}, verbose => '\''$(VERBINST)'\'', uninstall_shadows => '\''$(UNINST)'\'', dir_mode => '\''$(PERM_DIR)'\'' ]);' --
+DOC_INSTALL = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'perllocal_install' --
+UNINSTALL = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'uninstall' --
+WARN_IF_OLD_PACKLIST = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'warn_if_old_packlist' --
MACROSTART =
MACROEND =
USEMAKEFILE = -f
-FIXIN = $(PERLRUN) "-MExtUtils::MY" -e "MY->fixin(shift)"
+FIXIN = $(ABSPERLRUN) -MExtUtils::MY -e 'MY->fixin(shift)' --
# --- MakeMaker makemakerdflt section:
-makemakerdflt: all
+makemakerdflt : all
$(NOECHO) $(NOOP)
@@ -301,42 +307,42 @@ blibdirs.ts : blibdirs
$(INST_LIBDIR)$(DFSEP).exists :: Makefile.PL
$(NOECHO) $(MKPATH) $(INST_LIBDIR)
- $(NOECHO) $(CHMOD) 755 $(INST_LIBDIR)
+ $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_LIBDIR)
$(NOECHO) $(TOUCH) $(INST_LIBDIR)$(DFSEP).exists
$(INST_ARCHLIB)$(DFSEP).exists :: Makefile.PL
$(NOECHO) $(MKPATH) $(INST_ARCHLIB)
- $(NOECHO) $(CHMOD) 755 $(INST_ARCHLIB)
+ $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_ARCHLIB)
$(NOECHO) $(TOUCH) $(INST_ARCHLIB)$(DFSEP).exists
$(INST_AUTODIR)$(DFSEP).exists :: Makefile.PL
$(NOECHO) $(MKPATH) $(INST_AUTODIR)
- $(NOECHO) $(CHMOD) 755 $(INST_AUTODIR)
+ $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_AUTODIR)
$(NOECHO) $(TOUCH) $(INST_AUTODIR)$(DFSEP).exists
$(INST_ARCHAUTODIR)$(DFSEP).exists :: Makefile.PL
$(NOECHO) $(MKPATH) $(INST_ARCHAUTODIR)
- $(NOECHO) $(CHMOD) 755 $(INST_ARCHAUTODIR)
+ $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_ARCHAUTODIR)
$(NOECHO) $(TOUCH) $(INST_ARCHAUTODIR)$(DFSEP).exists
$(INST_BIN)$(DFSEP).exists :: Makefile.PL
$(NOECHO) $(MKPATH) $(INST_BIN)
- $(NOECHO) $(CHMOD) 755 $(INST_BIN)
+ $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_BIN)
$(NOECHO) $(TOUCH) $(INST_BIN)$(DFSEP).exists
$(INST_SCRIPT)$(DFSEP).exists :: Makefile.PL
$(NOECHO) $(MKPATH) $(INST_SCRIPT)
- $(NOECHO) $(CHMOD) 755 $(INST_SCRIPT)
+ $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_SCRIPT)
$(NOECHO) $(TOUCH) $(INST_SCRIPT)$(DFSEP).exists
$(INST_MAN1DIR)$(DFSEP).exists :: Makefile.PL
$(NOECHO) $(MKPATH) $(INST_MAN1DIR)
- $(NOECHO) $(CHMOD) 755 $(INST_MAN1DIR)
+ $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_MAN1DIR)
$(NOECHO) $(TOUCH) $(INST_MAN1DIR)$(DFSEP).exists
$(INST_MAN3DIR)$(DFSEP).exists :: Makefile.PL
$(NOECHO) $(MKPATH) $(INST_MAN3DIR)
- $(NOECHO) $(CHMOD) 755 $(INST_MAN3DIR)
+ $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_MAN3DIR)
$(NOECHO) $(TOUCH) $(INST_MAN3DIR)$(DFSEP).exists
@@ -446,16 +452,27 @@ realclean purge :: clean realclean_subdirs
# --- MakeMaker metafile section:
metafile : create_distdir
$(NOECHO) $(ECHO) Generating META.yml
- $(NOECHO) $(ECHO) '# http://module-build.sourceforge.net/META-spec.html' > META_new.yml
- $(NOECHO) $(ECHO) '#XXXXXXX This is a prototype!!! It will change in the future!!! XXXXX#' >> META_new.yml
- $(NOECHO) $(ECHO) 'name: Authen-NTLM-DES' >> META_new.yml
- $(NOECHO) $(ECHO) 'version: 1.02' >> META_new.yml
- $(NOECHO) $(ECHO) 'version_from: DES.pm' >> META_new.yml
- $(NOECHO) $(ECHO) 'installdirs: site' >> META_new.yml
- $(NOECHO) $(ECHO) 'requires:' >> META_new.yml
- $(NOECHO) $(ECHO) '' >> META_new.yml
- $(NOECHO) $(ECHO) 'distribution_type: module' >> META_new.yml
- $(NOECHO) $(ECHO) 'generated_by: ExtUtils::MakeMaker version 6.30_01' >> META_new.yml
+ $(NOECHO) $(ECHO) '--- #YAML:1.0' > META_new.yml
+ $(NOECHO) $(ECHO) 'name: Authen-NTLM-DES' >> META_new.yml
+ $(NOECHO) $(ECHO) 'version: 1.02' >> META_new.yml
+ $(NOECHO) $(ECHO) 'abstract: ~' >> META_new.yml
+ $(NOECHO) $(ECHO) 'author:' >> META_new.yml
+ $(NOECHO) $(ECHO) ' - David (Buzz) Bussenschutt , Mark Bush ' >> META_new.yml
+ $(NOECHO) $(ECHO) 'license: unknown' >> META_new.yml
+ $(NOECHO) $(ECHO) 'distribution_type: module' >> META_new.yml
+ $(NOECHO) $(ECHO) 'configure_requires:' >> META_new.yml
+ $(NOECHO) $(ECHO) ' ExtUtils::MakeMaker: 0' >> META_new.yml
+ $(NOECHO) $(ECHO) 'build_requires:' >> META_new.yml
+ $(NOECHO) $(ECHO) ' ExtUtils::MakeMaker: 0' >> META_new.yml
+ $(NOECHO) $(ECHO) 'requires: {}' >> META_new.yml
+ $(NOECHO) $(ECHO) 'no_index:' >> META_new.yml
+ $(NOECHO) $(ECHO) ' directory:' >> META_new.yml
+ $(NOECHO) $(ECHO) ' - t' >> META_new.yml
+ $(NOECHO) $(ECHO) ' - inc' >> META_new.yml
+ $(NOECHO) $(ECHO) 'generated_by: ExtUtils::MakeMaker version 6.55_02' >> META_new.yml
+ $(NOECHO) $(ECHO) 'meta-spec:' >> META_new.yml
+ $(NOECHO) $(ECHO) ' url: http://module-build.sourceforge.net/META-spec-v1.4.html' >> META_new.yml
+ $(NOECHO) $(ECHO) ' version: 1.4' >> META_new.yml
-$(NOECHO) $(MV) META_new.yml $(DISTVNAME)/META.yml
@@ -477,14 +494,14 @@ signature :
# --- MakeMaker distmeta section:
distmeta : create_distdir metafile
$(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'eval { maniadd({q{META.yml} => q{Module meta-data (added by MakeMaker)}}) } ' \
- -e ' or print "Could not add META.yml to MANIFEST: $${'\''@'\''}\n"'
+ -e ' or print "Could not add META.yml to MANIFEST: $${'\''@'\''}\n"' --
# --- MakeMaker distsignature section:
distsignature : create_distdir
$(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'eval { maniadd({q{SIGNATURE} => q{Public-key signature (added by MakeMaker)}}) } ' \
- -e ' or print "Could not add SIGNATURE to MANIFEST: $${'\''@'\''}\n"'
+ -e ' or print "Could not add SIGNATURE to MANIFEST: $${'\''@'\''}\n"' --
$(NOECHO) cd $(DISTVNAME) && $(TOUCH) SIGNATURE
cd $(DISTVNAME) && cpansign -s
@@ -494,7 +511,7 @@ distsignature : create_distdir
# --- MakeMaker force section:
# Phony target to force checking subdirectories.
-FORCE:
+FORCE :
$(NOECHO) $(NOOP)
@@ -513,7 +530,7 @@ $(FIRST_MAKEFILE) : Makefile.PL $(CONFIGDEP)
$(PERLRUN) Makefile.PL
$(NOECHO) $(ECHO) "==> Your Makefile has been rebuilt. <=="
$(NOECHO) $(ECHO) "==> Please rerun the $(MAKE) command. <=="
- false
+ $(FALSE)
@@ -534,7 +551,11 @@ TESTDB_SW = -d
testdb :: testdb_$(LINKTYPE)
-test :: $(TEST_TYPE)
+test :: $(TEST_TYPE) subdirs-test
+
+subdirs-test ::
+ $(NOECHO) $(NOOP)
+
$(NOECHO) $(ECHO) 'No tests defined for $(NAME) extension.'
test_dynamic :: pure_all
@@ -550,14 +571,12 @@ testdb_static :: testdb_dynamic
# --- MakeMaker ppd section:
# Creates a PPD (Perl Package Description) for a binary distribution.
-ppd:
- $(NOECHO) $(ECHO) '' > $(DISTNAME).ppd
- $(NOECHO) $(ECHO) ' $(DISTNAME)' >> $(DISTNAME).ppd
+ppd :
+ $(NOECHO) $(ECHO) '' > $(DISTNAME).ppd
$(NOECHO) $(ECHO) ' ' >> $(DISTNAME).ppd
$(NOECHO) $(ECHO) ' David (Buzz) Bussenschutt <davidbuzz@gmail.com>, Mark Bush <Mark.Bush@bushnet.demon.co.uk>' >> $(DISTNAME).ppd
$(NOECHO) $(ECHO) ' ' >> $(DISTNAME).ppd
- $(NOECHO) $(ECHO) ' ' >> $(DISTNAME).ppd
- $(NOECHO) $(ECHO) ' ' >> $(DISTNAME).ppd
+ $(NOECHO) $(ECHO) ' ' >> $(DISTNAME).ppd
$(NOECHO) $(ECHO) ' ' >> $(DISTNAME).ppd
$(NOECHO) $(ECHO) ' ' >> $(DISTNAME).ppd
$(NOECHO) $(ECHO) '' >> $(DISTNAME).ppd
@@ -565,8 +584,8 @@ ppd:
# --- MakeMaker pm_to_blib section:
-pm_to_blib : $(TO_INST_PM)
- $(NOECHO) $(ABSPERLRUN) -MExtUtils::Install -e 'pm_to_blib({@ARGV}, '\''$(INST_LIB)/auto'\'', '\''$(PM_FILTER)'\'')' \
+pm_to_blib : $(FIRST_MAKEFILE) $(TO_INST_PM)
+ $(NOECHO) $(ABSPERLRUN) -MExtUtils::Install -e 'pm_to_blib({@ARGV}, '\''$(INST_LIB)/auto'\'', q[$(PM_FILTER)], '\''$(PERM_DIR)'\'')' -- \
DES.pm $(INST_LIB)/Authen/NTLM/DES.pm
$(NOECHO) $(TOUCH) pm_to_blib
diff --git a/NTLM-1.05/DES/Makefile.PL b/NTLM-1.09/DES/Makefile.PL
similarity index 100%
rename from NTLM-1.05/DES/Makefile.PL
rename to NTLM-1.09/DES/Makefile.PL
diff --git a/NTLM-1.05/DES/pm_to_blib b/NTLM-1.09/DES/pm_to_blib
similarity index 100%
rename from NTLM-1.05/DES/pm_to_blib
rename to NTLM-1.09/DES/pm_to_blib
diff --git a/NTLM-1.05/MANIFEST b/NTLM-1.09/MANIFEST
similarity index 100%
rename from NTLM-1.05/MANIFEST
rename to NTLM-1.09/MANIFEST
diff --git a/NTLM-1.05/MD4/MD4.pm b/NTLM-1.09/MD4/MD4.pm
similarity index 100%
rename from NTLM-1.05/MD4/MD4.pm
rename to NTLM-1.09/MD4/MD4.pm
diff --git a/NTLM-1.05/MD4/Makefile b/NTLM-1.09/MD4/Makefile
similarity index 78%
rename from NTLM-1.05/MD4/Makefile
rename to NTLM-1.09/MD4/Makefile
index bbf9732..849b417 100644
--- a/NTLM-1.05/MD4/Makefile
+++ b/NTLM-1.09/MD4/Makefile
@@ -1,17 +1,20 @@
# This Makefile is for the Authen::NTLM::MD4 extension to perl.
#
# It was generated automatically by MakeMaker version
-# 6.30_01 (Revision: Revision: 4535 ) from the contents of
+# 6.55_02 (Revision: 65502) from the contents of
# Makefile.PL. Don't edit this file, edit Makefile.PL instead.
#
# ANY CHANGES MADE HERE WILL BE LOST!
#
# MakeMaker ARGV: ()
#
+
# MakeMaker Parameters:
# AUTHOR => q[David (Buzz) Bussenschutt , Mark Bush ]
+# BUILD_REQUIRES => { }
# NAME => q[Authen::NTLM::MD4]
+# PREREQ_PM => { }
# VERSION_FROM => q[MD4.pm]
# --- MakeMaker post_initialize section:
@@ -19,29 +22,28 @@
# --- MakeMaker const_config section:
-# These definitions are from config.sh (via /usr/lib/perl/5.8/Config.pm)
-
-# They may have been overridden via Makefile.PL or on the command line
+# These definitions are from config.sh (via /usr/lib/perl/5.10/Config.pm).
+# They may have been overridden via Makefile.PL or on the command line.
AR = ar
CC = cc
CCCDLFLAGS = -fPIC
CCDLFLAGS = -Wl,-E
DLEXT = so
DLSRC = dl_dlopen.xs
+EXE_EXT =
+FULL_AR = /usr/bin/ar
LD = cc
-LDDLFLAGS = -shared -L/usr/local/lib
-LDFLAGS = -L/usr/local/lib
-LIBC = /lib/libc-2.7.so
+LDDLFLAGS = -shared -O2 -g -L/usr/local/lib -fstack-protector
+LDFLAGS = -fstack-protector -L/usr/local/lib
+LIBC = /lib/libc-2.11.1.so
LIB_EXT = .a
OBJ_EXT = .o
OSNAME = linux
-OSVERS = 2.6.24-19-server
+OSVERS = 2.6.24-28-server
RANLIB = :
-SITELIBEXP = /usr/local/share/perl/5.8.8
-SITEARCHEXP = /usr/local/lib/perl/5.8.8
+SITELIBEXP = /usr/local/share/perl/5.10.1
+SITEARCHEXP = /usr/local/lib/perl/5.10.1
SO = so
-EXE_EXT =
-FULL_AR = /usr/bin/ar
VENDORARCHEXP = /usr/lib/perl5
VENDORLIBEXP = /usr/share/perl5
@@ -73,15 +75,15 @@ PREFIX = /usr
PERLPREFIX = $(PREFIX)
SITEPREFIX = $(PREFIX)/local
VENDORPREFIX = $(PREFIX)
-INSTALLPRIVLIB = $(PERLPREFIX)/share/perl/5.8
+INSTALLPRIVLIB = $(PERLPREFIX)/share/perl/5.10
DESTINSTALLPRIVLIB = $(DESTDIR)$(INSTALLPRIVLIB)
-INSTALLSITELIB = $(SITEPREFIX)/share/perl/5.8.8
+INSTALLSITELIB = $(SITEPREFIX)/share/perl/5.10.1
DESTINSTALLSITELIB = $(DESTDIR)$(INSTALLSITELIB)
INSTALLVENDORLIB = $(VENDORPREFIX)/share/perl5
DESTINSTALLVENDORLIB = $(DESTDIR)$(INSTALLVENDORLIB)
-INSTALLARCHLIB = $(PERLPREFIX)/lib/perl/5.8
+INSTALLARCHLIB = $(PERLPREFIX)/lib/perl/5.10
DESTINSTALLARCHLIB = $(DESTDIR)$(INSTALLARCHLIB)
-INSTALLSITEARCH = $(SITEPREFIX)/lib/perl/5.8.8
+INSTALLSITEARCH = $(SITEPREFIX)/lib/perl/5.10.1
DESTINSTALLSITEARCH = $(DESTDIR)$(INSTALLSITEARCH)
INSTALLVENDORARCH = $(VENDORPREFIX)/lib/perl5
DESTINSTALLVENDORARCH = $(DESTDIR)$(INSTALLVENDORARCH)
@@ -109,14 +111,14 @@ INSTALLSITEMAN3DIR = $(SITEPREFIX)/man/man3
DESTINSTALLSITEMAN3DIR = $(DESTDIR)$(INSTALLSITEMAN3DIR)
INSTALLVENDORMAN3DIR = $(VENDORPREFIX)/share/man/man3
DESTINSTALLVENDORMAN3DIR = $(DESTDIR)$(INSTALLVENDORMAN3DIR)
-PERL_LIB = /usr/share/perl/5.8
-PERL_ARCHLIB = /usr/lib/perl/5.8
+PERL_LIB = /usr/share/perl/5.10
+PERL_ARCHLIB = /usr/lib/perl/5.10
LIBPERL_A = libperl.a
FIRST_MAKEFILE = Makefile
MAKEFILE_OLD = Makefile.old
MAKE_APERL_FILE = Makefile.aperl
PERLMAINCC = $(CC)
-PERL_INC = /usr/lib/perl/5.8/CORE
+PERL_INC = /usr/lib/perl/5.10/CORE
PERL = /usr/bin/perl
FULLPERL = /usr/bin/perl
ABSPERL = $(PERL)
@@ -127,17 +129,19 @@ PERLRUNINST = $(PERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)"
FULLPERLRUNINST = $(FULLPERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)"
ABSPERLRUNINST = $(ABSPERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)"
PERL_CORE = 0
+PERM_DIR = 755
PERM_RW = 644
PERM_RWX = 755
-MAKEMAKER = /usr/share/perl/5.8/ExtUtils/MakeMaker.pm
-MM_VERSION = 6.30_01
-MM_REVISION = Revision: 4535
+MAKEMAKER = /usr/share/perl/5.10/ExtUtils/MakeMaker.pm
+MM_VERSION = 6.55_02
+MM_REVISION = 65502
# FULLEXT = Pathname for extension directory (eg Foo/Bar/Oracle).
# BASEEXT = Basename part of FULLEXT. May be just equal FULLEXT. (eg Oracle)
# PARENT_NAME = NAME without BASEEXT and no trailing :: (eg Foo::Bar)
# DLBASE = Basename part of dynamic library. May be just equal BASEEXT.
+MAKE = make
FULLEXT = Authen/NTLM/MD4
BASEEXT = MD4
PARENT_NAME = Authen::NTLM
@@ -183,13 +187,13 @@ PM_TO_BLIB = MD4.pm \
# --- MakeMaker platform_constants section:
-MM_Unix_VERSION = 1.50_01
+MM_Unix_VERSION = 6.55_02
PERL_MALLOC_DEF = -DPERL_EXTMALLOC_DEF -Dmalloc=Perl_malloc -Dfree=Perl_mfree -Drealloc=Perl_realloc -Dcalloc=Perl_calloc
# --- MakeMaker tool_autosplit section:
# Usage: $(AUTOSPLITFILE) FileToSplit AutoDirToSplitInto
-AUTOSPLITFILE = $(ABSPERLRUN) -e 'use AutoSplit; autosplit($$ARGV[0], $$ARGV[1], 0, 1, 1)'
+AUTOSPLITFILE = $(ABSPERLRUN) -e 'use AutoSplit; autosplit($$ARGV[0], $$ARGV[1], 0, 1, 1)' --
@@ -201,7 +205,7 @@ SHELL = /bin/sh
CHMOD = chmod
CP = cp
MV = mv
-NOOP = $(SHELL) -c true
+NOOP = $(TRUE)
NOECHO = @
RM_F = rm -f
RM_RF = rm -rf
@@ -209,24 +213,26 @@ TEST_F = test -f
TOUCH = touch
UMASK_NULL = umask 0
DEV_NULL = > /dev/null 2>&1
-MKPATH = $(ABSPERLRUN) "-MExtUtils::Command" -e mkpath
-EQUALIZE_TIMESTAMP = $(ABSPERLRUN) "-MExtUtils::Command" -e eqtime
+MKPATH = $(ABSPERLRUN) -MExtUtils::Command -e 'mkpath' --
+EQUALIZE_TIMESTAMP = $(ABSPERLRUN) -MExtUtils::Command -e 'eqtime' --
+FALSE = false
+TRUE = true
ECHO = echo
ECHO_N = echo -n
UNINST = 0
VERBINST = 0
-MOD_INSTALL = $(ABSPERLRUN) -MExtUtils::Install -e 'install({@ARGV}, '\''$(VERBINST)'\'', 0, '\''$(UNINST)'\'');'
-DOC_INSTALL = $(ABSPERLRUN) "-MExtUtils::Command::MM" -e perllocal_install
-UNINSTALL = $(ABSPERLRUN) "-MExtUtils::Command::MM" -e uninstall
-WARN_IF_OLD_PACKLIST = $(ABSPERLRUN) "-MExtUtils::Command::MM" -e warn_if_old_packlist
+MOD_INSTALL = $(ABSPERLRUN) -MExtUtils::Install -e 'install([ from_to => {@ARGV}, verbose => '\''$(VERBINST)'\'', uninstall_shadows => '\''$(UNINST)'\'', dir_mode => '\''$(PERM_DIR)'\'' ]);' --
+DOC_INSTALL = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'perllocal_install' --
+UNINSTALL = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'uninstall' --
+WARN_IF_OLD_PACKLIST = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'warn_if_old_packlist' --
MACROSTART =
MACROEND =
USEMAKEFILE = -f
-FIXIN = $(PERLRUN) "-MExtUtils::MY" -e "MY->fixin(shift)"
+FIXIN = $(ABSPERLRUN) -MExtUtils::MY -e 'MY->fixin(shift)' --
# --- MakeMaker makemakerdflt section:
-makemakerdflt: all
+makemakerdflt : all
$(NOECHO) $(NOOP)
@@ -301,42 +307,42 @@ blibdirs.ts : blibdirs
$(INST_LIBDIR)$(DFSEP).exists :: Makefile.PL
$(NOECHO) $(MKPATH) $(INST_LIBDIR)
- $(NOECHO) $(CHMOD) 755 $(INST_LIBDIR)
+ $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_LIBDIR)
$(NOECHO) $(TOUCH) $(INST_LIBDIR)$(DFSEP).exists
$(INST_ARCHLIB)$(DFSEP).exists :: Makefile.PL
$(NOECHO) $(MKPATH) $(INST_ARCHLIB)
- $(NOECHO) $(CHMOD) 755 $(INST_ARCHLIB)
+ $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_ARCHLIB)
$(NOECHO) $(TOUCH) $(INST_ARCHLIB)$(DFSEP).exists
$(INST_AUTODIR)$(DFSEP).exists :: Makefile.PL
$(NOECHO) $(MKPATH) $(INST_AUTODIR)
- $(NOECHO) $(CHMOD) 755 $(INST_AUTODIR)
+ $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_AUTODIR)
$(NOECHO) $(TOUCH) $(INST_AUTODIR)$(DFSEP).exists
$(INST_ARCHAUTODIR)$(DFSEP).exists :: Makefile.PL
$(NOECHO) $(MKPATH) $(INST_ARCHAUTODIR)
- $(NOECHO) $(CHMOD) 755 $(INST_ARCHAUTODIR)
+ $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_ARCHAUTODIR)
$(NOECHO) $(TOUCH) $(INST_ARCHAUTODIR)$(DFSEP).exists
$(INST_BIN)$(DFSEP).exists :: Makefile.PL
$(NOECHO) $(MKPATH) $(INST_BIN)
- $(NOECHO) $(CHMOD) 755 $(INST_BIN)
+ $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_BIN)
$(NOECHO) $(TOUCH) $(INST_BIN)$(DFSEP).exists
$(INST_SCRIPT)$(DFSEP).exists :: Makefile.PL
$(NOECHO) $(MKPATH) $(INST_SCRIPT)
- $(NOECHO) $(CHMOD) 755 $(INST_SCRIPT)
+ $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_SCRIPT)
$(NOECHO) $(TOUCH) $(INST_SCRIPT)$(DFSEP).exists
$(INST_MAN1DIR)$(DFSEP).exists :: Makefile.PL
$(NOECHO) $(MKPATH) $(INST_MAN1DIR)
- $(NOECHO) $(CHMOD) 755 $(INST_MAN1DIR)
+ $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_MAN1DIR)
$(NOECHO) $(TOUCH) $(INST_MAN1DIR)$(DFSEP).exists
$(INST_MAN3DIR)$(DFSEP).exists :: Makefile.PL
$(NOECHO) $(MKPATH) $(INST_MAN3DIR)
- $(NOECHO) $(CHMOD) 755 $(INST_MAN3DIR)
+ $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_MAN3DIR)
$(NOECHO) $(TOUCH) $(INST_MAN3DIR)$(DFSEP).exists
@@ -446,16 +452,27 @@ realclean purge :: clean realclean_subdirs
# --- MakeMaker metafile section:
metafile : create_distdir
$(NOECHO) $(ECHO) Generating META.yml
- $(NOECHO) $(ECHO) '# http://module-build.sourceforge.net/META-spec.html' > META_new.yml
- $(NOECHO) $(ECHO) '#XXXXXXX This is a prototype!!! It will change in the future!!! XXXXX#' >> META_new.yml
- $(NOECHO) $(ECHO) 'name: Authen-NTLM-MD4' >> META_new.yml
- $(NOECHO) $(ECHO) 'version: 1.02' >> META_new.yml
- $(NOECHO) $(ECHO) 'version_from: MD4.pm' >> META_new.yml
- $(NOECHO) $(ECHO) 'installdirs: site' >> META_new.yml
- $(NOECHO) $(ECHO) 'requires:' >> META_new.yml
- $(NOECHO) $(ECHO) '' >> META_new.yml
- $(NOECHO) $(ECHO) 'distribution_type: module' >> META_new.yml
- $(NOECHO) $(ECHO) 'generated_by: ExtUtils::MakeMaker version 6.30_01' >> META_new.yml
+ $(NOECHO) $(ECHO) '--- #YAML:1.0' > META_new.yml
+ $(NOECHO) $(ECHO) 'name: Authen-NTLM-MD4' >> META_new.yml
+ $(NOECHO) $(ECHO) 'version: 1.02' >> META_new.yml
+ $(NOECHO) $(ECHO) 'abstract: ~' >> META_new.yml
+ $(NOECHO) $(ECHO) 'author:' >> META_new.yml
+ $(NOECHO) $(ECHO) ' - David (Buzz) Bussenschutt , Mark Bush ' >> META_new.yml
+ $(NOECHO) $(ECHO) 'license: unknown' >> META_new.yml
+ $(NOECHO) $(ECHO) 'distribution_type: module' >> META_new.yml
+ $(NOECHO) $(ECHO) 'configure_requires:' >> META_new.yml
+ $(NOECHO) $(ECHO) ' ExtUtils::MakeMaker: 0' >> META_new.yml
+ $(NOECHO) $(ECHO) 'build_requires:' >> META_new.yml
+ $(NOECHO) $(ECHO) ' ExtUtils::MakeMaker: 0' >> META_new.yml
+ $(NOECHO) $(ECHO) 'requires: {}' >> META_new.yml
+ $(NOECHO) $(ECHO) 'no_index:' >> META_new.yml
+ $(NOECHO) $(ECHO) ' directory:' >> META_new.yml
+ $(NOECHO) $(ECHO) ' - t' >> META_new.yml
+ $(NOECHO) $(ECHO) ' - inc' >> META_new.yml
+ $(NOECHO) $(ECHO) 'generated_by: ExtUtils::MakeMaker version 6.55_02' >> META_new.yml
+ $(NOECHO) $(ECHO) 'meta-spec:' >> META_new.yml
+ $(NOECHO) $(ECHO) ' url: http://module-build.sourceforge.net/META-spec-v1.4.html' >> META_new.yml
+ $(NOECHO) $(ECHO) ' version: 1.4' >> META_new.yml
-$(NOECHO) $(MV) META_new.yml $(DISTVNAME)/META.yml
@@ -477,14 +494,14 @@ signature :
# --- MakeMaker distmeta section:
distmeta : create_distdir metafile
$(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'eval { maniadd({q{META.yml} => q{Module meta-data (added by MakeMaker)}}) } ' \
- -e ' or print "Could not add META.yml to MANIFEST: $${'\''@'\''}\n"'
+ -e ' or print "Could not add META.yml to MANIFEST: $${'\''@'\''}\n"' --
# --- MakeMaker distsignature section:
distsignature : create_distdir
$(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'eval { maniadd({q{SIGNATURE} => q{Public-key signature (added by MakeMaker)}}) } ' \
- -e ' or print "Could not add SIGNATURE to MANIFEST: $${'\''@'\''}\n"'
+ -e ' or print "Could not add SIGNATURE to MANIFEST: $${'\''@'\''}\n"' --
$(NOECHO) cd $(DISTVNAME) && $(TOUCH) SIGNATURE
cd $(DISTVNAME) && cpansign -s
@@ -494,7 +511,7 @@ distsignature : create_distdir
# --- MakeMaker force section:
# Phony target to force checking subdirectories.
-FORCE:
+FORCE :
$(NOECHO) $(NOOP)
@@ -513,7 +530,7 @@ $(FIRST_MAKEFILE) : Makefile.PL $(CONFIGDEP)
$(PERLRUN) Makefile.PL
$(NOECHO) $(ECHO) "==> Your Makefile has been rebuilt. <=="
$(NOECHO) $(ECHO) "==> Please rerun the $(MAKE) command. <=="
- false
+ $(FALSE)
@@ -534,7 +551,11 @@ TESTDB_SW = -d
testdb :: testdb_$(LINKTYPE)
-test :: $(TEST_TYPE)
+test :: $(TEST_TYPE) subdirs-test
+
+subdirs-test ::
+ $(NOECHO) $(NOOP)
+
$(NOECHO) $(ECHO) 'No tests defined for $(NAME) extension.'
test_dynamic :: pure_all
@@ -550,14 +571,12 @@ testdb_static :: testdb_dynamic
# --- MakeMaker ppd section:
# Creates a PPD (Perl Package Description) for a binary distribution.
-ppd:
- $(NOECHO) $(ECHO) '' > $(DISTNAME).ppd
- $(NOECHO) $(ECHO) ' $(DISTNAME)' >> $(DISTNAME).ppd
+ppd :
+ $(NOECHO) $(ECHO) '' > $(DISTNAME).ppd
$(NOECHO) $(ECHO) ' ' >> $(DISTNAME).ppd
$(NOECHO) $(ECHO) ' David (Buzz) Bussenschutt <davidbuzz@gmail.com>, Mark Bush <Mark.Bush@bushnet.demon.co.uk>' >> $(DISTNAME).ppd
$(NOECHO) $(ECHO) ' ' >> $(DISTNAME).ppd
- $(NOECHO) $(ECHO) ' ' >> $(DISTNAME).ppd
- $(NOECHO) $(ECHO) ' ' >> $(DISTNAME).ppd
+ $(NOECHO) $(ECHO) ' ' >> $(DISTNAME).ppd
$(NOECHO) $(ECHO) ' ' >> $(DISTNAME).ppd
$(NOECHO) $(ECHO) ' ' >> $(DISTNAME).ppd
$(NOECHO) $(ECHO) '' >> $(DISTNAME).ppd
@@ -565,8 +584,8 @@ ppd:
# --- MakeMaker pm_to_blib section:
-pm_to_blib : $(TO_INST_PM)
- $(NOECHO) $(ABSPERLRUN) -MExtUtils::Install -e 'pm_to_blib({@ARGV}, '\''$(INST_LIB)/auto'\'', '\''$(PM_FILTER)'\'')' \
+pm_to_blib : $(FIRST_MAKEFILE) $(TO_INST_PM)
+ $(NOECHO) $(ABSPERLRUN) -MExtUtils::Install -e 'pm_to_blib({@ARGV}, '\''$(INST_LIB)/auto'\'', q[$(PM_FILTER)], '\''$(PERM_DIR)'\'')' -- \
MD4.pm $(INST_LIB)/Authen/NTLM/MD4.pm
$(NOECHO) $(TOUCH) pm_to_blib
diff --git a/NTLM-1.05/MD4/Makefile.PL b/NTLM-1.09/MD4/Makefile.PL
similarity index 100%
rename from NTLM-1.05/MD4/Makefile.PL
rename to NTLM-1.09/MD4/Makefile.PL
diff --git a/NTLM-1.05/MD4/pm_to_blib b/NTLM-1.09/MD4/pm_to_blib
similarity index 100%
rename from NTLM-1.05/MD4/pm_to_blib
rename to NTLM-1.09/MD4/pm_to_blib
diff --git a/NTLM-1.05/META.yml b/NTLM-1.09/META.yml
similarity index 78%
rename from NTLM-1.05/META.yml
rename to NTLM-1.09/META.yml
index df2d97b..3c07f98 100644
--- a/NTLM-1.05/META.yml
+++ b/NTLM-1.09/META.yml
@@ -1,10 +1,10 @@
--- #YAML:1.0
name: Authen-NTLM
-version: 1.05
+version: 1.09
abstract: ~
-license: ~
+license: perl
author:
- - David (Buzz) Bussenschutt , Mark Bush
+ - David (Buzz) Bussenschutt , Mark Bush , Nick Bebout
generated_by: ExtUtils::MakeMaker version 6.42
distribution_type: module
requires:
diff --git a/NTLM-1.05/Makefile b/NTLM-1.09/Makefile
similarity index 80%
rename from NTLM-1.05/Makefile
rename to NTLM-1.09/Makefile
index a2f96da..98141fc 100644
--- a/NTLM-1.05/Makefile
+++ b/NTLM-1.09/Makefile
@@ -1,16 +1,18 @@
# This Makefile is for the Authen::NTLM extension to perl.
#
# It was generated automatically by MakeMaker version
-# 6.30_01 (Revision: Revision: 4535 ) from the contents of
+# 6.55_02 (Revision: 65502) from the contents of
# Makefile.PL. Don't edit this file, edit Makefile.PL instead.
#
# ANY CHANGES MADE HERE WILL BE LOST!
#
# MakeMaker ARGV: ()
#
+
# MakeMaker Parameters:
# AUTHOR => q[David (Buzz) Bussenschutt , Mark Bush ]
+# BUILD_REQUIRES => { }
# DIR => [q[DES], q[MD4]]
# NAME => q[Authen::NTLM]
# PREREQ_PM => { Digest::HMAC_MD5=>q[0], MIME::Base64=>q[0] }
@@ -21,29 +23,28 @@
# --- MakeMaker const_config section:
-# These definitions are from config.sh (via /usr/lib/perl/5.8/Config.pm)
-
-# They may have been overridden via Makefile.PL or on the command line
+# These definitions are from config.sh (via /usr/lib/perl/5.10/Config.pm).
+# They may have been overridden via Makefile.PL or on the command line.
AR = ar
CC = cc
CCCDLFLAGS = -fPIC
CCDLFLAGS = -Wl,-E
DLEXT = so
DLSRC = dl_dlopen.xs
+EXE_EXT =
+FULL_AR = /usr/bin/ar
LD = cc
-LDDLFLAGS = -shared -L/usr/local/lib
-LDFLAGS = -L/usr/local/lib
-LIBC = /lib/libc-2.7.so
+LDDLFLAGS = -shared -O2 -g -L/usr/local/lib -fstack-protector
+LDFLAGS = -fstack-protector -L/usr/local/lib
+LIBC = /lib/libc-2.11.1.so
LIB_EXT = .a
OBJ_EXT = .o
OSNAME = linux
-OSVERS = 2.6.24-19-server
+OSVERS = 2.6.24-28-server
RANLIB = :
-SITELIBEXP = /usr/local/share/perl/5.8.8
-SITEARCHEXP = /usr/local/lib/perl/5.8.8
+SITELIBEXP = /usr/local/share/perl/5.10.1
+SITEARCHEXP = /usr/local/lib/perl/5.10.1
SO = so
-EXE_EXT =
-FULL_AR = /usr/bin/ar
VENDORARCHEXP = /usr/lib/perl5
VENDORLIBEXP = /usr/share/perl5
@@ -54,11 +55,11 @@ DIRFILESEP = /
DFSEP = $(DIRFILESEP)
NAME = Authen::NTLM
NAME_SYM = Authen_NTLM
-VERSION = 1.05
+VERSION = 1.09
VERSION_MACRO = VERSION
-VERSION_SYM = 1_05
+VERSION_SYM = 1_09
DEFINE_VERSION = -D$(VERSION_MACRO)=\"$(VERSION)\"
-XS_VERSION = 1.05
+XS_VERSION = 1.09
XS_VERSION_MACRO = XS_VERSION
XS_DEFINE_VERSION = -D$(XS_VERSION_MACRO)=\"$(XS_VERSION)\"
INST_ARCHLIB = blib/arch
@@ -75,15 +76,15 @@ PREFIX = /usr
PERLPREFIX = $(PREFIX)
SITEPREFIX = $(PREFIX)/local
VENDORPREFIX = $(PREFIX)
-INSTALLPRIVLIB = $(PERLPREFIX)/share/perl/5.8
+INSTALLPRIVLIB = $(PERLPREFIX)/share/perl/5.10
DESTINSTALLPRIVLIB = $(DESTDIR)$(INSTALLPRIVLIB)
-INSTALLSITELIB = $(SITEPREFIX)/share/perl/5.8.8
+INSTALLSITELIB = $(SITEPREFIX)/share/perl/5.10.1
DESTINSTALLSITELIB = $(DESTDIR)$(INSTALLSITELIB)
INSTALLVENDORLIB = $(VENDORPREFIX)/share/perl5
DESTINSTALLVENDORLIB = $(DESTDIR)$(INSTALLVENDORLIB)
-INSTALLARCHLIB = $(PERLPREFIX)/lib/perl/5.8
+INSTALLARCHLIB = $(PERLPREFIX)/lib/perl/5.10
DESTINSTALLARCHLIB = $(DESTDIR)$(INSTALLARCHLIB)
-INSTALLSITEARCH = $(SITEPREFIX)/lib/perl/5.8.8
+INSTALLSITEARCH = $(SITEPREFIX)/lib/perl/5.10.1
DESTINSTALLSITEARCH = $(DESTDIR)$(INSTALLSITEARCH)
INSTALLVENDORARCH = $(VENDORPREFIX)/lib/perl5
DESTINSTALLVENDORARCH = $(DESTDIR)$(INSTALLVENDORARCH)
@@ -111,14 +112,14 @@ INSTALLSITEMAN3DIR = $(SITEPREFIX)/man/man3
DESTINSTALLSITEMAN3DIR = $(DESTDIR)$(INSTALLSITEMAN3DIR)
INSTALLVENDORMAN3DIR = $(VENDORPREFIX)/share/man/man3
DESTINSTALLVENDORMAN3DIR = $(DESTDIR)$(INSTALLVENDORMAN3DIR)
-PERL_LIB = /usr/share/perl/5.8
-PERL_ARCHLIB = /usr/lib/perl/5.8
+PERL_LIB = /usr/share/perl/5.10
+PERL_ARCHLIB = /usr/lib/perl/5.10
LIBPERL_A = libperl.a
FIRST_MAKEFILE = Makefile
MAKEFILE_OLD = Makefile.old
MAKE_APERL_FILE = Makefile.aperl
PERLMAINCC = $(CC)
-PERL_INC = /usr/lib/perl/5.8/CORE
+PERL_INC = /usr/lib/perl/5.10/CORE
PERL = /usr/bin/perl
FULLPERL = /usr/bin/perl
ABSPERL = $(PERL)
@@ -129,17 +130,19 @@ PERLRUNINST = $(PERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)"
FULLPERLRUNINST = $(FULLPERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)"
ABSPERLRUNINST = $(ABSPERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)"
PERL_CORE = 0
+PERM_DIR = 755
PERM_RW = 644
PERM_RWX = 755
-MAKEMAKER = /usr/share/perl/5.8/ExtUtils/MakeMaker.pm
-MM_VERSION = 6.30_01
-MM_REVISION = Revision: 4535
+MAKEMAKER = /usr/share/perl/5.10/ExtUtils/MakeMaker.pm
+MM_VERSION = 6.55_02
+MM_REVISION = 65502
# FULLEXT = Pathname for extension directory (eg Foo/Bar/Oracle).
# BASEEXT = Basename part of FULLEXT. May be just equal FULLEXT. (eg Oracle)
# PARENT_NAME = NAME without BASEEXT and no trailing :: (eg Foo::Bar)
# DLBASE = Basename part of dynamic library. May be just equal BASEEXT.
+MAKE = make
FULLEXT = Authen/NTLM
BASEEXT = NTLM
PARENT_NAME = Authen
@@ -185,13 +188,13 @@ PM_TO_BLIB = NTLM.pm \
# --- MakeMaker platform_constants section:
-MM_Unix_VERSION = 1.50_01
+MM_Unix_VERSION = 6.55_02
PERL_MALLOC_DEF = -DPERL_EXTMALLOC_DEF -Dmalloc=Perl_malloc -Dfree=Perl_mfree -Drealloc=Perl_realloc -Dcalloc=Perl_calloc
# --- MakeMaker tool_autosplit section:
# Usage: $(AUTOSPLITFILE) FileToSplit AutoDirToSplitInto
-AUTOSPLITFILE = $(ABSPERLRUN) -e 'use AutoSplit; autosplit($$ARGV[0], $$ARGV[1], 0, 1, 1)'
+AUTOSPLITFILE = $(ABSPERLRUN) -e 'use AutoSplit; autosplit($$ARGV[0], $$ARGV[1], 0, 1, 1)' --
@@ -203,7 +206,7 @@ SHELL = /bin/sh
CHMOD = chmod
CP = cp
MV = mv
-NOOP = $(SHELL) -c true
+NOOP = $(TRUE)
NOECHO = @
RM_F = rm -f
RM_RF = rm -rf
@@ -211,24 +214,26 @@ TEST_F = test -f
TOUCH = touch
UMASK_NULL = umask 0
DEV_NULL = > /dev/null 2>&1
-MKPATH = $(ABSPERLRUN) "-MExtUtils::Command" -e mkpath
-EQUALIZE_TIMESTAMP = $(ABSPERLRUN) "-MExtUtils::Command" -e eqtime
+MKPATH = $(ABSPERLRUN) -MExtUtils::Command -e 'mkpath' --
+EQUALIZE_TIMESTAMP = $(ABSPERLRUN) -MExtUtils::Command -e 'eqtime' --
+FALSE = false
+TRUE = true
ECHO = echo
ECHO_N = echo -n
UNINST = 0
VERBINST = 0
-MOD_INSTALL = $(ABSPERLRUN) -MExtUtils::Install -e 'install({@ARGV}, '\''$(VERBINST)'\'', 0, '\''$(UNINST)'\'');'
-DOC_INSTALL = $(ABSPERLRUN) "-MExtUtils::Command::MM" -e perllocal_install
-UNINSTALL = $(ABSPERLRUN) "-MExtUtils::Command::MM" -e uninstall
-WARN_IF_OLD_PACKLIST = $(ABSPERLRUN) "-MExtUtils::Command::MM" -e warn_if_old_packlist
+MOD_INSTALL = $(ABSPERLRUN) -MExtUtils::Install -e 'install([ from_to => {@ARGV}, verbose => '\''$(VERBINST)'\'', uninstall_shadows => '\''$(UNINST)'\'', dir_mode => '\''$(PERM_DIR)'\'' ]);' --
+DOC_INSTALL = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'perllocal_install' --
+UNINSTALL = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'uninstall' --
+WARN_IF_OLD_PACKLIST = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'warn_if_old_packlist' --
MACROSTART =
MACROEND =
USEMAKEFILE = -f
-FIXIN = $(PERLRUN) "-MExtUtils::MY" -e "MY->fixin(shift)"
+FIXIN = $(ABSPERLRUN) -MExtUtils::MY -e 'MY->fixin(shift)' --
# --- MakeMaker makemakerdflt section:
-makemakerdflt: all
+makemakerdflt : all
$(NOECHO) $(NOOP)
@@ -248,7 +253,7 @@ RCS_LABEL = rcs -Nv$(VERSION_SYM): -q
DIST_CP = best
DIST_DEFAULT = tardist
DISTNAME = Authen-NTLM
-DISTVNAME = Authen-NTLM-1.05
+DISTVNAME = Authen-NTLM-1.09
# --- MakeMaker macro section:
@@ -320,42 +325,42 @@ blibdirs.ts : blibdirs
$(INST_LIBDIR)$(DFSEP).exists :: Makefile.PL
$(NOECHO) $(MKPATH) $(INST_LIBDIR)
- $(NOECHO) $(CHMOD) 755 $(INST_LIBDIR)
+ $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_LIBDIR)
$(NOECHO) $(TOUCH) $(INST_LIBDIR)$(DFSEP).exists
$(INST_ARCHLIB)$(DFSEP).exists :: Makefile.PL
$(NOECHO) $(MKPATH) $(INST_ARCHLIB)
- $(NOECHO) $(CHMOD) 755 $(INST_ARCHLIB)
+ $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_ARCHLIB)
$(NOECHO) $(TOUCH) $(INST_ARCHLIB)$(DFSEP).exists
$(INST_AUTODIR)$(DFSEP).exists :: Makefile.PL
$(NOECHO) $(MKPATH) $(INST_AUTODIR)
- $(NOECHO) $(CHMOD) 755 $(INST_AUTODIR)
+ $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_AUTODIR)
$(NOECHO) $(TOUCH) $(INST_AUTODIR)$(DFSEP).exists
$(INST_ARCHAUTODIR)$(DFSEP).exists :: Makefile.PL
$(NOECHO) $(MKPATH) $(INST_ARCHAUTODIR)
- $(NOECHO) $(CHMOD) 755 $(INST_ARCHAUTODIR)
+ $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_ARCHAUTODIR)
$(NOECHO) $(TOUCH) $(INST_ARCHAUTODIR)$(DFSEP).exists
$(INST_BIN)$(DFSEP).exists :: Makefile.PL
$(NOECHO) $(MKPATH) $(INST_BIN)
- $(NOECHO) $(CHMOD) 755 $(INST_BIN)
+ $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_BIN)
$(NOECHO) $(TOUCH) $(INST_BIN)$(DFSEP).exists
$(INST_SCRIPT)$(DFSEP).exists :: Makefile.PL
$(NOECHO) $(MKPATH) $(INST_SCRIPT)
- $(NOECHO) $(CHMOD) 755 $(INST_SCRIPT)
+ $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_SCRIPT)
$(NOECHO) $(TOUCH) $(INST_SCRIPT)$(DFSEP).exists
$(INST_MAN1DIR)$(DFSEP).exists :: Makefile.PL
$(NOECHO) $(MKPATH) $(INST_MAN1DIR)
- $(NOECHO) $(CHMOD) 755 $(INST_MAN1DIR)
+ $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_MAN1DIR)
$(NOECHO) $(TOUCH) $(INST_MAN1DIR)$(DFSEP).exists
$(INST_MAN3DIR)$(DFSEP).exists :: Makefile.PL
$(NOECHO) $(MKPATH) $(INST_MAN3DIR)
- $(NOECHO) $(CHMOD) 755 $(INST_MAN3DIR)
+ $(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_MAN3DIR)
$(NOECHO) $(TOUCH) $(INST_MAN3DIR)$(DFSEP).exists
@@ -401,7 +406,6 @@ POD2MAN = $(POD2MAN_EXE)
manifypods : pure_all \
- NTLM.pm \
NTLM.pm
$(NOECHO) $(POD2MAN) --section=$(MAN3EXT) --perm_rw=$(PERM_RW) \
NTLM.pm $(INST_MAN3DIR)/Authen::NTLM.$(MAN3EXT)
@@ -430,8 +434,8 @@ subdirs ::
# --- MakeMaker clean_subdirs section:
clean_subdirs :
- $(ABSPERLRUN) -e 'chdir '\''DES'\''; system '\''$(MAKE) clean'\'' if -f '\''$(FIRST_MAKEFILE)'\'';'
- $(ABSPERLRUN) -e 'chdir '\''MD4'\''; system '\''$(MAKE) clean'\'' if -f '\''$(FIRST_MAKEFILE)'\'';'
+ $(ABSPERLRUN) -e 'chdir '\''DES'\''; system '\''$(MAKE) clean'\'' if -f '\''$(FIRST_MAKEFILE)'\'';' --
+ $(ABSPERLRUN) -e 'chdir '\''MD4'\''; system '\''$(MAKE) clean'\'' if -f '\''$(FIRST_MAKEFILE)'\'';' --
# --- MakeMaker clean section:
@@ -463,10 +467,10 @@ clean :: clean_subdirs
# --- MakeMaker realclean_subdirs section:
realclean_subdirs :
- - $(ABSPERLRUN) -e 'chdir '\''DES'\''; system '\''$(MAKE) $(USEMAKEFILE) $(MAKEFILE_OLD) realclean'\'' if -f '\''$(MAKEFILE_OLD)'\'';'
- - $(ABSPERLRUN) -e 'chdir '\''DES'\''; system '\''$(MAKE) $(USEMAKEFILE) $(FIRST_MAKEFILE) realclean'\'' if -f '\''$(FIRST_MAKEFILE)'\'';'
- - $(ABSPERLRUN) -e 'chdir '\''MD4'\''; system '\''$(MAKE) $(USEMAKEFILE) $(MAKEFILE_OLD) realclean'\'' if -f '\''$(MAKEFILE_OLD)'\'';'
- - $(ABSPERLRUN) -e 'chdir '\''MD4'\''; system '\''$(MAKE) $(USEMAKEFILE) $(FIRST_MAKEFILE) realclean'\'' if -f '\''$(FIRST_MAKEFILE)'\'';'
+ - $(ABSPERLRUN) -e 'chdir '\''DES'\''; system '\''$(MAKE) $(USEMAKEFILE) $(MAKEFILE_OLD) realclean'\'' if -f '\''$(MAKEFILE_OLD)'\'';' --
+ - $(ABSPERLRUN) -e 'chdir '\''DES'\''; system '\''$(MAKE) $(USEMAKEFILE) $(FIRST_MAKEFILE) realclean'\'' if -f '\''$(FIRST_MAKEFILE)'\'';' --
+ - $(ABSPERLRUN) -e 'chdir '\''MD4'\''; system '\''$(MAKE) $(USEMAKEFILE) $(MAKEFILE_OLD) realclean'\'' if -f '\''$(MAKEFILE_OLD)'\'';' --
+ - $(ABSPERLRUN) -e 'chdir '\''MD4'\''; system '\''$(MAKE) $(USEMAKEFILE) $(FIRST_MAKEFILE) realclean'\'' if -f '\''$(FIRST_MAKEFILE)'\'';' --
# --- MakeMaker realclean section:
@@ -481,18 +485,29 @@ realclean purge :: clean realclean_subdirs
# --- MakeMaker metafile section:
metafile : create_distdir
$(NOECHO) $(ECHO) Generating META.yml
- $(NOECHO) $(ECHO) '# http://module-build.sourceforge.net/META-spec.html' > META_new.yml
- $(NOECHO) $(ECHO) '#XXXXXXX This is a prototype!!! It will change in the future!!! XXXXX#' >> META_new.yml
- $(NOECHO) $(ECHO) 'name: Authen-NTLM' >> META_new.yml
- $(NOECHO) $(ECHO) 'version: 1.05' >> META_new.yml
- $(NOECHO) $(ECHO) 'version_from: NTLM.pm' >> META_new.yml
- $(NOECHO) $(ECHO) 'installdirs: site' >> META_new.yml
+ $(NOECHO) $(ECHO) '--- #YAML:1.0' > META_new.yml
+ $(NOECHO) $(ECHO) 'name: Authen-NTLM' >> META_new.yml
+ $(NOECHO) $(ECHO) 'version: 1.09' >> META_new.yml
+ $(NOECHO) $(ECHO) 'abstract: ~' >> META_new.yml
+ $(NOECHO) $(ECHO) 'author:' >> META_new.yml
+ $(NOECHO) $(ECHO) ' - David (Buzz) Bussenschutt , Mark Bush ' >> META_new.yml
+ $(NOECHO) $(ECHO) 'license: unknown' >> META_new.yml
+ $(NOECHO) $(ECHO) 'distribution_type: module' >> META_new.yml
+ $(NOECHO) $(ECHO) 'configure_requires:' >> META_new.yml
+ $(NOECHO) $(ECHO) ' ExtUtils::MakeMaker: 0' >> META_new.yml
+ $(NOECHO) $(ECHO) 'build_requires:' >> META_new.yml
+ $(NOECHO) $(ECHO) ' ExtUtils::MakeMaker: 0' >> META_new.yml
$(NOECHO) $(ECHO) 'requires:' >> META_new.yml
- $(NOECHO) $(ECHO) ' Digest::HMAC_MD5: 0' >> META_new.yml
- $(NOECHO) $(ECHO) ' MIME::Base64: 0' >> META_new.yml
- $(NOECHO) $(ECHO) '' >> META_new.yml
- $(NOECHO) $(ECHO) 'distribution_type: module' >> META_new.yml
- $(NOECHO) $(ECHO) 'generated_by: ExtUtils::MakeMaker version 6.30_01' >> META_new.yml
+ $(NOECHO) $(ECHO) ' Digest::HMAC_MD5: 0' >> META_new.yml
+ $(NOECHO) $(ECHO) ' MIME::Base64: 0' >> META_new.yml
+ $(NOECHO) $(ECHO) 'no_index:' >> META_new.yml
+ $(NOECHO) $(ECHO) ' directory:' >> META_new.yml
+ $(NOECHO) $(ECHO) ' - t' >> META_new.yml
+ $(NOECHO) $(ECHO) ' - inc' >> META_new.yml
+ $(NOECHO) $(ECHO) 'generated_by: ExtUtils::MakeMaker version 6.55_02' >> META_new.yml
+ $(NOECHO) $(ECHO) 'meta-spec:' >> META_new.yml
+ $(NOECHO) $(ECHO) ' url: http://module-build.sourceforge.net/META-spec-v1.4.html' >> META_new.yml
+ $(NOECHO) $(ECHO) ' version: 1.4' >> META_new.yml
-$(NOECHO) $(MV) META_new.yml $(DISTVNAME)/META.yml
@@ -515,7 +530,7 @@ manifest :
$(PERLRUN) "-MExtUtils::Manifest=mkmanifest" -e mkmanifest
veryclean : realclean
- $(RM_F) *~ *.orig */*~ */*.orig
+ $(RM_F) *~ */*~ *.orig */*.orig *.bak */*.bak *.old */*.old
@@ -523,7 +538,7 @@ veryclean : realclean
dist : $(DIST_DEFAULT) $(FIRST_MAKEFILE)
$(NOECHO) $(ABSPERLRUN) -l -e 'print '\''Warning: Makefile possibly out of date with $(VERSION_FROM)'\''' \
- -e ' if -e '\''$(VERSION_FROM)'\'' and -M '\''$(VERSION_FROM)'\'' < -M '\''$(FIRST_MAKEFILE)'\'';'
+ -e ' if -e '\''$(VERSION_FROM)'\'' and -M '\''$(VERSION_FROM)'\'' < -M '\''$(FIRST_MAKEFILE)'\'';' --
tardist : $(DISTVNAME).tar$(SUFFIX)
$(NOECHO) $(NOOP)
@@ -586,14 +601,14 @@ ci :
# --- MakeMaker distmeta section:
distmeta : create_distdir metafile
$(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'eval { maniadd({q{META.yml} => q{Module meta-data (added by MakeMaker)}}) } ' \
- -e ' or print "Could not add META.yml to MANIFEST: $${'\''@'\''}\n"'
+ -e ' or print "Could not add META.yml to MANIFEST: $${'\''@'\''}\n"' --
# --- MakeMaker distsignature section:
distsignature : create_distdir
$(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'eval { maniadd({q{SIGNATURE} => q{Public-key signature (added by MakeMaker)}}) } ' \
- -e ' or print "Could not add SIGNATURE to MANIFEST: $${'\''@'\''}\n"'
+ -e ' or print "Could not add SIGNATURE to MANIFEST: $${'\''@'\''}\n"' --
$(NOECHO) cd $(DISTVNAME) && $(TOUCH) SIGNATURE
cd $(DISTVNAME) && cpansign -s
@@ -601,16 +616,16 @@ distsignature : create_distdir
# --- MakeMaker install section:
-install :: all pure_install doc_install
+install :: pure_install doc_install
$(NOECHO) $(NOOP)
-install_perl :: all pure_perl_install doc_perl_install
+install_perl :: pure_perl_install doc_perl_install
$(NOECHO) $(NOOP)
-install_site :: all pure_site_install doc_site_install
+install_site :: pure_site_install doc_site_install
$(NOECHO) $(NOOP)
-install_vendor :: all pure_vendor_install doc_vendor_install
+install_vendor :: pure_vendor_install doc_vendor_install
$(NOECHO) $(NOOP)
pure_install :: pure_$(INSTALLDIRS)_install
@@ -625,7 +640,7 @@ pure__install : pure_site_install
doc__install : doc_site_install
$(NOECHO) $(ECHO) INSTALLDIRS not defined, defaulting to INSTALLDIRS=site
-pure_perl_install ::
+pure_perl_install :: all
$(NOECHO) umask 022; $(MOD_INSTALL) \
$(INST_LIB) $(DESTINSTALLPRIVLIB) \
$(INST_ARCHLIB) $(DESTINSTALLARCHLIB) \
@@ -637,7 +652,7 @@ pure_perl_install ::
$(SITEARCHEXP)/auto/$(FULLEXT)
-pure_site_install ::
+pure_site_install :: all
$(NOECHO) umask 02; $(MOD_INSTALL) \
read $(SITEARCHEXP)/auto/$(FULLEXT)/.packlist \
write $(DESTINSTALLSITEARCH)/auto/$(FULLEXT)/.packlist \
@@ -650,7 +665,7 @@ pure_site_install ::
$(NOECHO) $(WARN_IF_OLD_PACKLIST) \
$(PERL_ARCHLIB)/auto/$(FULLEXT)
-pure_vendor_install ::
+pure_vendor_install :: all
$(NOECHO) umask 022; $(MOD_INSTALL) \
$(INST_LIB) $(DESTINSTALLVENDORLIB) \
$(INST_ARCHLIB) $(DESTINSTALLVENDORARCH) \
@@ -659,9 +674,9 @@ pure_vendor_install ::
$(INST_MAN1DIR) $(DESTINSTALLVENDORMAN1DIR) \
$(INST_MAN3DIR) $(DESTINSTALLVENDORMAN3DIR)
-doc_perl_install ::
+doc_perl_install :: all
-doc_site_install ::
+doc_site_install :: all
$(NOECHO) $(ECHO) Appending installation info to $(DESTINSTALLSITEARCH)/perllocal.pod
-$(NOECHO) umask 02; $(MKPATH) $(DESTINSTALLSITEARCH)
-$(NOECHO) umask 02; $(DOC_INSTALL) \
@@ -672,7 +687,7 @@ doc_site_install ::
EXE_FILES "$(EXE_FILES)" \
>> $(DESTINSTALLSITEARCH)/perllocal.pod
-doc_vendor_install ::
+doc_vendor_install :: all
uninstall :: uninstall_from_$(INSTALLDIRS)dirs
@@ -689,7 +704,7 @@ uninstall_from_vendordirs ::
# --- MakeMaker force section:
# Phony target to force checking subdirectories.
-FORCE:
+FORCE :
$(NOECHO) $(NOOP)
@@ -708,7 +723,7 @@ $(FIRST_MAKEFILE) : Makefile.PL $(CONFIGDEP)
$(PERLRUN) Makefile.PL
$(NOECHO) $(ECHO) "==> Your Makefile has been rebuilt. <=="
$(NOECHO) $(ECHO) "==> Please rerun the $(MAKE) command. <=="
- false
+ $(FALSE)
@@ -739,13 +754,17 @@ TESTDB_SW = -d
testdb :: testdb_$(LINKTYPE)
-test :: $(TEST_TYPE)
- $(NOECHO) $(ABSPERLRUN) -e 'chdir '\''DES'\''; ' \
- -e 'system '\''$(MAKE) test $(PASTHRU)'\'' ' \
- -e ' if -f '\''$(FIRST_MAKEFILE)'\'';'
- $(NOECHO) $(ABSPERLRUN) -e 'chdir '\''MD4'\''; ' \
- -e 'system '\''$(MAKE) test $(PASTHRU)'\'' ' \
- -e ' if -f '\''$(FIRST_MAKEFILE)'\'';'
+test :: $(TEST_TYPE) subdirs-test
+
+subdirs-test ::
+ $(NOECHO) $(NOOP)
+
+subdirs-test ::
+ $(NOECHO) cd DES && $(MAKE) test $(PASTHRU)
+
+subdirs-test ::
+ $(NOECHO) cd MD4 && $(MAKE) test $(PASTHRU)
+
test_dynamic :: pure_all
PERL_DL_NONLAZY=1 $(FULLPERLRUN) "-MExtUtils::Command::MM" "-e" "test_harness($(TEST_VERBOSE), '$(INST_LIB)', '$(INST_ARCHLIB)')" $(TEST_FILES)
@@ -761,16 +780,14 @@ testdb_static :: testdb_dynamic
# --- MakeMaker ppd section:
# Creates a PPD (Perl Package Description) for a binary distribution.
-ppd:
- $(NOECHO) $(ECHO) '' > $(DISTNAME).ppd
- $(NOECHO) $(ECHO) ' $(DISTNAME)' >> $(DISTNAME).ppd
+ppd :
+ $(NOECHO) $(ECHO) '' > $(DISTNAME).ppd
$(NOECHO) $(ECHO) ' ' >> $(DISTNAME).ppd
$(NOECHO) $(ECHO) ' David (Buzz) Bussenschutt <davidbuzz@gmail.com>, Mark Bush <Mark.Bush@bushnet.demon.co.uk>' >> $(DISTNAME).ppd
$(NOECHO) $(ECHO) ' ' >> $(DISTNAME).ppd
- $(NOECHO) $(ECHO) ' ' >> $(DISTNAME).ppd
- $(NOECHO) $(ECHO) ' ' >> $(DISTNAME).ppd
- $(NOECHO) $(ECHO) ' ' >> $(DISTNAME).ppd
- $(NOECHO) $(ECHO) ' ' >> $(DISTNAME).ppd
+ $(NOECHO) $(ECHO) ' ' >> $(DISTNAME).ppd
+ $(NOECHO) $(ECHO) ' ' >> $(DISTNAME).ppd
+ $(NOECHO) $(ECHO) ' ' >> $(DISTNAME).ppd
$(NOECHO) $(ECHO) ' ' >> $(DISTNAME).ppd
$(NOECHO) $(ECHO) ' ' >> $(DISTNAME).ppd
$(NOECHO) $(ECHO) '' >> $(DISTNAME).ppd
@@ -778,8 +795,8 @@ ppd:
# --- MakeMaker pm_to_blib section:
-pm_to_blib : $(TO_INST_PM)
- $(NOECHO) $(ABSPERLRUN) -MExtUtils::Install -e 'pm_to_blib({@ARGV}, '\''$(INST_LIB)/auto'\'', '\''$(PM_FILTER)'\'')' \
+pm_to_blib : $(FIRST_MAKEFILE) $(TO_INST_PM)
+ $(NOECHO) $(ABSPERLRUN) -MExtUtils::Install -e 'pm_to_blib({@ARGV}, '\''$(INST_LIB)/auto'\'', q[$(PM_FILTER)], '\''$(PERM_DIR)'\'')' -- \
NTLM.pm $(INST_LIB)/Authen/NTLM.pm
$(NOECHO) $(TOUCH) pm_to_blib
diff --git a/NTLM-1.05/Makefile.PL b/NTLM-1.09/Makefile.PL
similarity index 100%
rename from NTLM-1.05/Makefile.PL
rename to NTLM-1.09/Makefile.PL
diff --git a/NTLM-1.05/blib/lib/Authen/NTLM.pm b/NTLM-1.09/NTLM.pm
similarity index 94%
rename from NTLM-1.05/blib/lib/Authen/NTLM.pm
rename to NTLM-1.09/NTLM.pm
index 5587f54..60af70e 100644
--- a/NTLM-1.05/blib/lib/Authen/NTLM.pm
+++ b/NTLM-1.09/NTLM.pm
@@ -148,6 +148,10 @@ L, L, L
=head1 HISTORY
+ 1.09 - fix CPAN ticket # 70703
+ 1.08 - fix CPAN ticket # 39925
+ 1.07 - not publicly released
+ 1.06 - relicense as GPL+ or Artistic
1.05 - add OO interface by Dmitry Karasik
1.04 - implementation of NTLMv2 by Andrew Hobson/Dmitry Karasik
1.03 - fixes long-standing 1 line bug L - released by David Bussenschutt 9th Aug 2007
@@ -155,7 +159,7 @@ L, L, L
=cut
-$VERSION = "1.05";
+$VERSION = "1.09";
@ISA = qw(Exporter);
@EXPORT = qw(ntlm ntlm_domain ntlm_user ntlm_password ntlm_reset ntlm_host ntlmv2);
@@ -210,7 +214,7 @@ sub challenge
my ( $self, $challenge) = @_;
$state = defined $challenge;
($user,$domain,$password,$host) = @{$self}{qw(user domain password host)};
- $ntlm_v2 = ($self-> {version} > 1) ? 1 : 0;
+ $ntlm_v2 = ($self-> {version} eq '2') ? 1 : 0;
return ntlm($challenge);
}
@@ -287,10 +291,17 @@ sub ntlm
$lmResp = &lmEncrypt($c_info->{data});
$ntResp = &ntEncrypt($c_info->{data});
$flags = pack($msg3_tl, $c_info->{flags});
- } else {
+ }
+ elsif ($ntlm_v2 eq '1') {
$lmResp = &lmv2Encrypt($c_info->{data});
$ntResp = &ntv2Encrypt($c_info->{data}, $c_info->{target_data});
$flags = pack($msg3_tl, $ntlm_v2_msg3_flags);
+ }
+ else {
+ $domain = &unicode($domain);#substr($challenge, $c_info->{domain}{offset}, $c_info->{domain}{len});
+ $lmResp = &lmEncrypt($c_info->{data});
+ $ntResp = &ntEncrypt($c_info->{data});
+ $flags = pack($msg3_tl, $c_info->{flags});
}
$u_host = &unicode(($host ? $host : $user));
$response = pack($msg3, $ident, 3);
@@ -318,7 +329,7 @@ sub ntlm
$f &= ~NTLMSSP_NEGOTIATE_OEM_DOMAIN_SUPPLIED;
}
$msg1_host = $user;
- if ($ntlm_v2) {
+ if ($ntlm_v2 and $ntlm_v2 eq '1') {
$f &= ~NTLMSSP_NEGOTIATE_OEM_WORKSTATION_SUPPLIED;
$f |= NTLMSSP_NEGOTIATE_NTLM2;
$msg1_host = "";
@@ -360,7 +371,8 @@ sub decode_challenge
my (@res, @hdr);
my $original = $challenge;
- $res->{buffer} = substr($challenge, $msg2_hlen);
+ $res->{buffer} = $msg2_hlen < length $challenge
+ ? substr($challenge, $msg2_hlen) : '';
$challenge = substr($challenge, 0, $msg2_hlen);
@res = unpack($msg2, $challenge);
$res->{ident} = $res[0];
diff --git a/NTLM-1.09/README b/NTLM-1.09/README
new file mode 100644
index 0000000..1354a9d
--- /dev/null
+++ b/NTLM-1.09/README
@@ -0,0 +1,104 @@
+NTLM Authentication Scheme
+==========================
+
+This module implements the NTLM authentication mechanism. It can be
+used to perform NTLM style authentication for any desired protocol.
+
+The module works well with the Mail::IMAPClient module in the
+"authenticate" method, however I had to make a change to that method
+for it to work. The following line (2511 in version 2.1.4):
+
+ ($code) = $o->[DATA] =~ /^\+ (.*)$/ ;
+
+needed to be changed to:
+
+ ($code) = $o->[DATA] =~ /^\+(.*)$/ ;
+
+as the initial NTLM challenge is empty.
+
+This module also works well with LWP::Authen::Ntlm , allowing LWP::UserAgent
+and/or WWW::Mechanise to automate/browse/fetch/etc remote Microsoft Windows
+servers running NTLM authentication.
+Example use is like this(note the fact that NTLM.pm is NOT explicitly used!):
+
+ use WWW::Mechanize;
+ $mech = WWW::Mechanize->new(keep_alive=>1);
+ $mech->no_proxy('my.server');
+ $mech->credentials('my.server:80', '', "my_domain\\my_user", my_pass);
+ $response = $mech->get( $url );
+
+
+INSTALLATION
+
+To install this application:
+
+ perl Makefile.PL
+ make
+ make test
+ make install
+
+DEPENDENCIES
+
+This module requires the MIME::Base64 module, and Digest::HMAC_MD5
+
+COPYRIGHT AND LICENSE
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of either:
+
+ a) the GNU General Public License as published by the Free
+ Software Foundation; either version 1, or (at your option) any
+ later version, or
+
+ b) the "Artistic License" which comes with this Kit.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See either
+the GNU General Public License or the Artistic License for more details.
+
+You should have received a copy of the Artistic License with this
+Kit, in the file named "COPYING-Artistic". If not, I'll be glad to provide one.
+
+You should also have received a copy of the GNU General Public License version 1
+along with this program in the file named "COPYING-GPL". If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+Boston, MA 02110-1301, USA or visit their web page on the internet at
+http://www.gnu.org/copyleft/gpl.html.
+
+For those of you that choose to use the GNU General Public License,
+my interpretation of the GNU General Public License is that no Perl
+script falls under the terms of the GPL unless you explicitly put
+said script under the terms of the GPL yourself. Furthermore, any
+object code linked with perl does not automatically fall under the
+terms of the GPL, provided such object code only adds definitions
+of subroutines and variables, and does not otherwise impair the
+resulting interpreter from executing any standard Perl script. I
+consider linking in C subroutines in this manner to be the moral
+equivalent of defining subroutines in the Perl language itself. You
+may sell such an object file as proprietary provided that you provide
+or offer to provide the Perl source, as specified by the GNU General
+Public License. (This is merely an alternate way of specifying input
+to the program.) You may also sell a binary produced by the dumping of
+a running Perl script that belongs to you, provided that you provide or
+offer to provide the Perl source as specified by the GPL. (The
+fact that a Perl interpreter and your code are in the same binary file
+is, in this case, a form of mere aggregation.) This is my interpretation
+of the GPL. If you still have concerns or difficulties understanding
+my intent, feel free to contact me. Of course, the Artistic License
+spells all this out for your protection, so you may prefer to use that.
+
+License clarified by Nick Bebout per email from David Bussenschutt.
+
+
+Parts of this code Copyright (C) 2007 David (Buzz) Bussenschutt.
+
+
+Perl port of this code is Copyright (C) 2001 Mark Bush.
+
+
+The code is originally based on fetchmail code which is Copyright (C) 1997 Eric
+S. Raymond.
+
+Fetchmail uses SMB/Netbios code from samba which is Copyright (C)
+Andrew Tridgell 1992-1998 with modifications from Jeremy Allison.
diff --git a/NTLM-1.05/blib/arch/.exists b/NTLM-1.09/blib/arch/.exists
similarity index 100%
rename from NTLM-1.05/blib/arch/.exists
rename to NTLM-1.09/blib/arch/.exists
diff --git a/NTLM-1.05/blib/arch/auto/Authen/NTLM/.exists b/NTLM-1.09/blib/arch/auto/Authen/NTLM/.exists
similarity index 100%
rename from NTLM-1.05/blib/arch/auto/Authen/NTLM/.exists
rename to NTLM-1.09/blib/arch/auto/Authen/NTLM/.exists
diff --git a/NTLM-1.05/blib/arch/auto/Authen/NTLM/DES/.exists b/NTLM-1.09/blib/arch/auto/Authen/NTLM/DES/.exists
similarity index 100%
rename from NTLM-1.05/blib/arch/auto/Authen/NTLM/DES/.exists
rename to NTLM-1.09/blib/arch/auto/Authen/NTLM/DES/.exists
diff --git a/NTLM-1.05/blib/arch/auto/Authen/NTLM/MD4/.exists b/NTLM-1.09/blib/arch/auto/Authen/NTLM/MD4/.exists
similarity index 100%
rename from NTLM-1.05/blib/arch/auto/Authen/NTLM/MD4/.exists
rename to NTLM-1.09/blib/arch/auto/Authen/NTLM/MD4/.exists
diff --git a/NTLM-1.05/blib/bin/.exists b/NTLM-1.09/blib/bin/.exists
similarity index 100%
rename from NTLM-1.05/blib/bin/.exists
rename to NTLM-1.09/blib/bin/.exists
diff --git a/NTLM-1.05/blib/lib/Authen/.exists b/NTLM-1.09/blib/lib/Authen/.exists
similarity index 100%
rename from NTLM-1.05/blib/lib/Authen/.exists
rename to NTLM-1.09/blib/lib/Authen/.exists
diff --git a/NTLM-1.05/NTLM.pm b/NTLM-1.09/blib/lib/Authen/NTLM.pm
similarity index 94%
rename from NTLM-1.05/NTLM.pm
rename to NTLM-1.09/blib/lib/Authen/NTLM.pm
index 5587f54..60af70e 100644
--- a/NTLM-1.05/NTLM.pm
+++ b/NTLM-1.09/blib/lib/Authen/NTLM.pm
@@ -148,6 +148,10 @@ L, L, L
=head1 HISTORY
+ 1.09 - fix CPAN ticket # 70703
+ 1.08 - fix CPAN ticket # 39925
+ 1.07 - not publicly released
+ 1.06 - relicense as GPL+ or Artistic
1.05 - add OO interface by Dmitry Karasik
1.04 - implementation of NTLMv2 by Andrew Hobson/Dmitry Karasik
1.03 - fixes long-standing 1 line bug L - released by David Bussenschutt 9th Aug 2007
@@ -155,7 +159,7 @@ L, L, L
=cut
-$VERSION = "1.05";
+$VERSION = "1.09";
@ISA = qw(Exporter);
@EXPORT = qw(ntlm ntlm_domain ntlm_user ntlm_password ntlm_reset ntlm_host ntlmv2);
@@ -210,7 +214,7 @@ sub challenge
my ( $self, $challenge) = @_;
$state = defined $challenge;
($user,$domain,$password,$host) = @{$self}{qw(user domain password host)};
- $ntlm_v2 = ($self-> {version} > 1) ? 1 : 0;
+ $ntlm_v2 = ($self-> {version} eq '2') ? 1 : 0;
return ntlm($challenge);
}
@@ -287,10 +291,17 @@ sub ntlm
$lmResp = &lmEncrypt($c_info->{data});
$ntResp = &ntEncrypt($c_info->{data});
$flags = pack($msg3_tl, $c_info->{flags});
- } else {
+ }
+ elsif ($ntlm_v2 eq '1') {
$lmResp = &lmv2Encrypt($c_info->{data});
$ntResp = &ntv2Encrypt($c_info->{data}, $c_info->{target_data});
$flags = pack($msg3_tl, $ntlm_v2_msg3_flags);
+ }
+ else {
+ $domain = &unicode($domain);#substr($challenge, $c_info->{domain}{offset}, $c_info->{domain}{len});
+ $lmResp = &lmEncrypt($c_info->{data});
+ $ntResp = &ntEncrypt($c_info->{data});
+ $flags = pack($msg3_tl, $c_info->{flags});
}
$u_host = &unicode(($host ? $host : $user));
$response = pack($msg3, $ident, 3);
@@ -318,7 +329,7 @@ sub ntlm
$f &= ~NTLMSSP_NEGOTIATE_OEM_DOMAIN_SUPPLIED;
}
$msg1_host = $user;
- if ($ntlm_v2) {
+ if ($ntlm_v2 and $ntlm_v2 eq '1') {
$f &= ~NTLMSSP_NEGOTIATE_OEM_WORKSTATION_SUPPLIED;
$f |= NTLMSSP_NEGOTIATE_NTLM2;
$msg1_host = "";
@@ -360,7 +371,8 @@ sub decode_challenge
my (@res, @hdr);
my $original = $challenge;
- $res->{buffer} = substr($challenge, $msg2_hlen);
+ $res->{buffer} = $msg2_hlen < length $challenge
+ ? substr($challenge, $msg2_hlen) : '';
$challenge = substr($challenge, 0, $msg2_hlen);
@res = unpack($msg2, $challenge);
$res->{ident} = $res[0];
diff --git a/NTLM-1.05/blib/lib/Authen/NTLM/.exists b/NTLM-1.09/blib/lib/Authen/NTLM/.exists
similarity index 100%
rename from NTLM-1.05/blib/lib/Authen/NTLM/.exists
rename to NTLM-1.09/blib/lib/Authen/NTLM/.exists
diff --git a/NTLM-1.05/blib/lib/Authen/NTLM/DES.pm b/NTLM-1.09/blib/lib/Authen/NTLM/DES.pm
similarity index 100%
rename from NTLM-1.05/blib/lib/Authen/NTLM/DES.pm
rename to NTLM-1.09/blib/lib/Authen/NTLM/DES.pm
diff --git a/NTLM-1.05/blib/lib/Authen/NTLM/MD4.pm b/NTLM-1.09/blib/lib/Authen/NTLM/MD4.pm
similarity index 100%
rename from NTLM-1.05/blib/lib/Authen/NTLM/MD4.pm
rename to NTLM-1.09/blib/lib/Authen/NTLM/MD4.pm
diff --git a/NTLM-1.05/blib/lib/auto/Authen/NTLM/.exists b/NTLM-1.09/blib/lib/auto/Authen/NTLM/.exists
similarity index 100%
rename from NTLM-1.05/blib/lib/auto/Authen/NTLM/.exists
rename to NTLM-1.09/blib/lib/auto/Authen/NTLM/.exists
diff --git a/NTLM-1.05/blib/lib/auto/Authen/NTLM/DES/.exists b/NTLM-1.09/blib/lib/auto/Authen/NTLM/DES/.exists
similarity index 100%
rename from NTLM-1.05/blib/lib/auto/Authen/NTLM/DES/.exists
rename to NTLM-1.09/blib/lib/auto/Authen/NTLM/DES/.exists
diff --git a/NTLM-1.05/blib/lib/auto/Authen/NTLM/MD4/.exists b/NTLM-1.09/blib/lib/auto/Authen/NTLM/MD4/.exists
similarity index 100%
rename from NTLM-1.05/blib/lib/auto/Authen/NTLM/MD4/.exists
rename to NTLM-1.09/blib/lib/auto/Authen/NTLM/MD4/.exists
diff --git a/NTLM-1.05/blib/man1/.exists b/NTLM-1.09/blib/man1/.exists
similarity index 100%
rename from NTLM-1.05/blib/man1/.exists
rename to NTLM-1.09/blib/man1/.exists
diff --git a/NTLM-1.05/blib/man3/.exists b/NTLM-1.09/blib/man3/.exists
similarity index 100%
rename from NTLM-1.05/blib/man3/.exists
rename to NTLM-1.09/blib/man3/.exists
diff --git a/NTLM-1.05/blib/man3/Authen::NTLM.3pm b/NTLM-1.09/blib/man3/Authen::NTLM.3pm
similarity index 92%
rename from NTLM-1.05/blib/man3/Authen::NTLM.3pm
rename to NTLM-1.09/blib/man3/Authen::NTLM.3pm
index 7e3bc1e..5bea465 100644
--- a/NTLM-1.05/blib/man3/Authen::NTLM.3pm
+++ b/NTLM-1.09/blib/man3/Authen::NTLM.3pm
@@ -1,15 +1,7 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.32
+.\" Automatically generated by Pod::Man 2.22 (Pod::Simple 3.07)
.\"
.\" Standard preamble:
.\" ========================================================================
-.de Sh \" Subsection heading
-.br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
-..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
@@ -48,22 +40,25 @@
. ds R" ''
'br\}
.\"
+.\" Escape single quotes in literal strings from groff's Unicode transform.
+.ie \n(.g .ds Aq \(aq
+.el .ds Aq '
+.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
+.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD. Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
-.if \nF \{\
+.ie \nF \{\
. de IX
. tm Index:\\$1\t\\n%\t"\\$2"
..
. nr % 0
. rr F
.\}
-.\"
-.\" For nroff, turn off justification. Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.hy 0
-.if n .na
+.el \{\
+. de IX
+..
+.\}
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear. Run. Save yourself. No user-serviceable parts.
@@ -129,7 +124,11 @@
.\" ========================================================================
.\"
.IX Title "NTLM 3pm"
-.TH NTLM 3pm "2008-06-18" "perl v5.8.8" "User Contributed Perl Documentation"
+.TH NTLM 3pm "2011-09-09" "perl v5.10.1" "User Contributed Perl Documentation"
+.\" For nroff, turn off justification. Always turn off hyphenation; it makes
+.\" way too many mistakes in technical documents.
+.if n .ad l
+.nh
.SH "NAME"
Authen::NTLM \- An NTLM authentication module
.SH "SYNOPSIS"
@@ -137,7 +136,7 @@ Authen::NTLM \- An NTLM authentication module
.Vb 10
\& use Mail::IMAPClient;
\& use Authen::NTLM;
-\& my $imap = Mail::IMAPClient\->new(Server=>\(aqimaphost\(aq);
+\& my $imap = Mail::IMAPClient\->new(Server=>\*(Aqimaphost\*(Aq);
\& ntlm_user($username);
\& ntlm_password($password);
\& $imap\->authenticate("NTLM", Authen::NTLM::ntlm);
@@ -179,16 +178,14 @@ or
\& to perform the challenge/response mechanism for NTLM connections
\& or it can be used on its own for NTLM authentication with other
\& protocols (eg. HTTP).
-.Ve
-.PP
-.Vb 5
+\&
\& The implementation is a direct port of the code from F
\& which, itself, has based its NTLM implementation on F. As
\& such, this code is not especially efficient, however it will still
\& take a fraction of a second to negotiate a login on a PII which is
\& likely to be good enough for most situations.
.Ve
-.Sh "\s-1FUNCTIONS\s0"
+.SS "\s-1FUNCTIONS\s0"
.IX Subsection "FUNCTIONS"
.IP "\fIntlm_domain()\fR" 4
.IX Item "ntlm_domain()"
@@ -225,17 +222,13 @@ or
\& response containing the username and domain (which may be empty).
\& The first call to C generates this first message ignoring
\& any arguments.
-.Ve
-.Sp
-.Vb 5
+\&
\& The second time it is called, it is assumed that the argument is
\& the challenge string sent from the server. This will contain 8
\& bytes of data which are used in the DES functions to generate the
\& response authentication strings. The result of the call is the
\& final authentication string.
-.Ve
-.Sp
-.Vb 3
+\&
\& If C is called, then the next call to C will
\& start the process again allowing multiple authentications within
\& an application.
@@ -245,7 +238,7 @@ or
.Vb 1
\& Use NTLM v2 authentication.
.Ve
-.Sh "\s-1OBJECT\s0 \s-1API\s0"
+.SS "\s-1OBJECT\s0 \s-1API\s0"
.IX Subsection "OBJECT API"
.ie n .IP "new %options" 4
.el .IP "new \f(CW%options\fR" 4
@@ -270,10 +263,14 @@ the call is the final authentication string.
.Ve
.SH "SEE ALSO"
.IX Header "SEE ALSO"
-perl, Mail::IMAPClient, LWP::Authen::Ntlm
+perl, Mail::IMAPClient, LWP::Authen::Ntlm
.SH "HISTORY"
.IX Header "HISTORY"
-.Vb 4
+.Vb 8
+\& 1.09 \- fix CPAN ticket # 70703
+\& 1.08 \- fix CPAN ticket # 39925
+\& 1.07 \- not publicly released
+\& 1.06 \- relicense as GPL+ or Artistic
\& 1.05 \- add OO interface by Dmitry Karasik
\& 1.04 \- implementation of NTLMv2 by Andrew Hobson/Dmitry Karasik
\& 1.03 \- fixes long\-standing 1 line bug L \- released by David Bussenschutt 9th Aug 2007
diff --git a/NTLM-1.05/blib/script/.exists b/NTLM-1.09/blib/script/.exists
similarity index 100%
rename from NTLM-1.05/blib/script/.exists
rename to NTLM-1.09/blib/script/.exists
diff --git a/NTLM-1.05/pm_to_blib b/NTLM-1.09/pm_to_blib
similarity index 100%
rename from NTLM-1.05/pm_to_blib
rename to NTLM-1.09/pm_to_blib
diff --git a/NTLM-1.05/t/01_load.t b/NTLM-1.09/t/01_load.t
similarity index 100%
rename from NTLM-1.05/t/01_load.t
rename to NTLM-1.09/t/01_load.t
diff --git a/NTLM-1.05/t/02_ntlm.t b/NTLM-1.09/t/02_ntlm.t
similarity index 100%
rename from NTLM-1.05/t/02_ntlm.t
rename to NTLM-1.09/t/02_ntlm.t
diff --git a/NTLM-1.05/t/03_oo.t b/NTLM-1.09/t/03_oo.t
similarity index 100%
rename from NTLM-1.05/t/03_oo.t
rename to NTLM-1.09/t/03_oo.t
diff --git a/NTLM-1.05/t/04_v2.t b/NTLM-1.09/t/04_v2.t
similarity index 100%
rename from NTLM-1.05/t/04_v2.t
rename to NTLM-1.09/t/04_v2.t
diff --git a/NTLM-1.05/t/99_pod.t b/NTLM-1.09/t/99_pod.t
similarity index 100%
rename from NTLM-1.05/t/99_pod.t
rename to NTLM-1.09/t/99_pod.t
diff --git a/README b/README
index 897f262..f3df037 100644
--- a/README
+++ b/README
@@ -3,7 +3,7 @@ NAME
Synchronise mailboxes between two imap servers. Good at IMAP migration.
More than 36 different IMAP server softwares supported with success.
- $Revision: 1.456 $
+ $Revision: 1.463 $
SYNOPSIS
To synchronise imap account "foo" on "imap.truc.org" to imap account
@@ -334,8 +334,8 @@ IMAP SERVERS
- hMailServer 5.3.3 [host2], 4.4.1 [host1] (see FAQ)
- iPlanet Messaging server 4.15, 5.1, 5.2
- IMail 7.15 (Ipswitch/Win2003), 8.12, 11.03 [host1]
- - Kerio 7.2.0P1 [host1]
- - MailEnable 4.23 [host1] [host2]
+ - Kerio 7.2.0 Patch 1 [host1] [host2]
+ - MailEnable 4.23 [host1] [host2], 4.26 [host1][host2], 5 [host1]
- MDaemon 7.0.1, 8.0.2, 8.1, 9.5.4 (Windows server 2003 R2 platform), 12 [host2],
12.0.3 [host1]
- Mercury 4.1 (Windows server 2000 platform)
@@ -344,7 +344,7 @@ IMAP SERVERS
Exchange2007-EP-SP2,
Exchange 2010 RTM (Release to Manufacturing) [host2],
Exchange 2010 SP1 RU2[host2],
- - Mirapoint
+ - Mirapoint, 4.1.9-GA [host1]
- Netscape Mail Server 3.6 (Wintel !)
- Netscape Messaging Server 4.15 Patch 7
- OpenMail IMAP server B.07.00.k0 (Samsung Contact ?)
@@ -363,6 +363,7 @@ IMAP SERVERS
(http://www.washington.edu/imap/)
- UW - QMail v2.1
- VMS, Imap part of TCP/IP suite of VMS 7.3.2
+ - Yahoo [host1]
- Zimbra-IMAP 3.0.1 GA 160, 3.1.0 Build 279, 4.0.5, 4.5.2, 4.5.6,
Zimbra 5.0.24_GA_3356.RHEL4 [host1], 5.5, 6.x
@@ -385,10 +386,10 @@ HUGE MIGRATION
--maxage --minage --maxsize --useheader --fast --useuid --usecache
If you have many mailboxes to migrate think about a little shell
- program. Write a file called file.csv (for example) containing users and
+ program. Write a file called file.txt (for example) containing users and
passwords. The separator used in this example is ';'
- The file.csv file contains:
+ The file.txt file contains:
user001_1;password001_1;user001_2;password001_2
user002_1;password002_1;user002_2;password002_2
@@ -401,11 +402,11 @@ HUGE MIGRATION
{ while IFS=';' read u1 p1 u2 p2; do
imapsync --host1 imap.side1.org --user1 "$u1" --password1 "$p1" \
--host2 imap.side2.org --user2 "$u2" --password2 "$p2" ...
- done ; } < file.csv
+ done ; } < file.txt
On Windows the batch program can be:
- FOR /F "tokens=1,2,3,4 delims=; eol=#" %%G IN (file.csv) DO imapsync ^
+ FOR /F "tokens=1,2,3,4 delims=; eol=#" %%G IN (file.txt) DO imapsync ^
--host1 imap.side1.org --user1 %%G --password1 %%H ^
--host2 imap.side2.org --user2 %%I --password2 %%J ...
@@ -441,5 +442,5 @@ SIMILAR SOFTWARES
Feedback (good or bad) will often be welcome.
- $Id: imapsync,v 1.456 2011/08/24 04:21:30 gilles Exp gilles $
+ $Id: imapsync,v 1.463 2011/11/12 21:58:52 gilles Exp gilles $
diff --git a/TIME b/TIME
index 8ee8200..2e06442 100644
--- a/TIME
+++ b/TIME
@@ -1,3 +1,5 @@
+210 Added statistics on ks and lfo, % Operating systems, ip per year .Updated index.shtml
+210 Added --nocacheaftercopy and played with dbmail (uids generation are +=2!)
120 Statistics statistics_VERSION_synthesis
150 10 years old announce. index.html. 10 EUR. freshmeat announce+release 1.452
60 Added --search option.
diff --git a/TODO b/TODO
index b4ef37d..6295f99 100644
--- a/TODO
+++ b/TODO
@@ -1,5 +1,5 @@
#!/bin/cat
-# $Id: TODO,v 1.101 2011/08/24 06:50:30 gilles Exp gilles $
+# $Id: TODO,v 1.103 2011/11/12 21:59:35 gilles Exp gilles $
TODO file for imapsync
----------------------
@@ -23,6 +23,7 @@ Evaluate
http://www.rackspace.com/apps/email_hosting/migrations
http://www.yippiemove.com/
+
Find a way to avoid passwords in --debugimap unless needed.
Explain that users can win time/bandwidth by using --expunge
@@ -162,6 +163,11 @@ http://asg.web.cmu.edu/cyrus/download/imapd/altnamespace.html
===========================================================================
+DONE. Add --subscribe by default.
+
+DONE. Ask Nick Czeczulin why he wrote patent "Method for mailbox migration"
+http://www.google.com/patents/about?id=qI_IAAAAEBAJ
+
DONE. Add --search option allowing to select messages with any IMAP SEARCH command.
DONE. Make --usecache works with --maxage --maxsize etc.
diff --git a/VERSION b/VERSION
index 3853217..5b29492 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-1.456
+1.463
diff --git a/VERSION_EXE b/VERSION_EXE
index 3853217..5679d30 100644
--- a/VERSION_EXE
+++ b/VERSION_EXE
@@ -1 +1 @@
-1.456
+1.462
diff --git a/W/paypal_reply/paypal_bilan b/W/paypal_reply/paypal_bilan
index d279915..3d914c8 100755
--- a/W/paypal_reply/paypal_bilan
+++ b/W/paypal_reply/paypal_bilan
@@ -1,6 +1,6 @@
#!/usr/bin/perl
-# $Id: paypal_bilan,v 1.36 2011/07/18 19:21:07 gilles Exp gilles $
+# $Id: paypal_bilan,v 1.37 2011/09/17 22:54:31 gilles Exp gilles $
use strict;
use warnings;
@@ -171,8 +171,9 @@ print "Nb invoice suspended $nb_invoice_suspended\n" ;
print "Nb invoice sent $nb_invoice_sent\n" ;
print "Have to send invoices @invoice_not_sent\n" if ( @invoice_not_sent ) ;
-print "$total_eur != $total_HT_EUR_exo + $total_HT_EUR_ass + $total_TVA_EUR + $total_HT_EUR_sup + $total_TVA_EUR_sup\n"
-if ( $total_eur != $total_HT_EUR_exo + $total_HT_EUR_ass + $total_TVA_EUR + $total_HT_EUR_sup + $total_TVA_EUR_sup ) ;
+my $total_eur2 = $total_HT_EUR_exo + $total_HT_EUR_ass + $total_TVA_EUR + $total_HT_EUR_sup + $total_TVA_EUR_sup ;
+print "$total_eur != $total_eur2 = $total_HT_EUR_exo + $total_HT_EUR_ass + $total_TVA_EUR + $total_HT_EUR_sup + $total_TVA_EUR_sup\n"
+if ( $total_eur != $total_eur2 ) ;
sub parse_one_line_io {
my $csv = shift ;
diff --git a/W/paypal_reply/paypal_build_invoices b/W/paypal_reply/paypal_build_invoices
index 55156ef..b7548ad 100755
--- a/W/paypal_reply/paypal_build_invoices
+++ b/W/paypal_reply/paypal_build_invoices
@@ -15,19 +15,22 @@ set -x
#/g/public_html/imapsync/W/paypal_reply/paypal_bilan --write_invoices --first_in 645 /g/paypal/paypal_2011_05_complet.csv
#/g/public_html/imapsync/W/paypal_reply/paypal_bilan --write_invoices --first_in 733 /g/paypal/paypal_2011_06_complet.csv
#/g/public_html/imapsync/W/paypal_reply/paypal_bilan --write_invoices --first_in 824 /g/paypal/paypal_2011_07_complet.csv
-/g/public_html/imapsync/W/paypal_reply/paypal_bilan --write_invoices --first_in 917 /g/paypal/paypal_2011_08_complet.csv
+#/g/public_html/imapsync/W/paypal_reply/paypal_bilan --write_invoices --first_in 917 /g/paypal/paypal_2011_08_complet.csv
+/g/public_html/imapsync/W/paypal_reply/paypal_bilan --write_invoices --first_in 999 /g/paypal/paypal_2011_09_complet.csv
+/g/public_html/imapsync/W/paypal_reply/paypal_bilan --write_invoices --first_in 1094 /g/paypal/paypal_2011_10_complet.csv
-# /g/public_html/imapsync/W/paypal_reply/paypal_bilan --first_in 824 /g/paypal/paypal_2011_07_complet.csv
-# /g/public_html/imapsync/W/paypal_reply/paypal_bilan --first_in 917 /g/paypal/paypal_2011_08_complet.csv
+: /g/public_html/imapsync/W/paypal_reply/paypal_bilan --first_in 824 /g/paypal/paypal_2011_07_complet.csv
+: /g/public_html/imapsync/W/paypal_reply/paypal_bilan --first_in 917 /g/paypal/paypal_2011_08_complet.csv
+: /g/public_html/imapsync/W/paypal_reply/paypal_bilan --first_in 1094 /g/paypal/paypal_2011_10_complet.csv
set +x
# La totale
: || /g/public_html/imapsync/W/paypal_reply/paypal_bilan --bnc --debug \
- --first_in 147 --avoid_numbers '292 293 643 644 731 732' \
+ --first_in 147 --avoid_numbers '292 293 643 644 731 732 1093' \
/g/paypal/paypal_201?_??_complet.csv
: || /g/public_html/imapsync/W/paypal_reply/paypal_bilan \
- --first_in 147 --avoid_numbers '292 293 643 644 731 732' \
+ --first_in 147 --avoid_numbers '292 293 643 644 731 732 1093' \
/g/paypal/paypal_201?_??_complet.csv
diff --git a/file.csv b/file.txt
similarity index 53%
rename from file.csv
rename to file.txt
index cd03ab9..9d931a7 100644
--- a/file.csv
+++ b/file.txt
@@ -1,19 +1,24 @@
-# Example file.csv for imapsync massive migration.
-
-# Thanks to http://ss64.com/nt/for_f.html
+# Example file.txt for imapsync massive migration.
+#
+# ==== Windows ====
+# Thanks to http://ss64.com/nt/for_f.html for
+# the Windows example of a for loop
#
-# A line beginning with # is a comment thanks to option Win32 eol=#
-# Separator is character ; it can be changed by any character using delims=;
-# Each contains 4 columns, columns are parameters for --user1 --password1 --user2 --password2
-#
# This file can be used on Windows with the following line in a batch
-# FOR /F "tokens=1,2,3,4 delims=; eol=#" %%G IN (file.csv) DO imapsync --host1 imap.truc.org --user1 %%G --password1 %%H --host2 imap.trac.org --user2 %%I --password2 %%J
+# FOR /F "tokens=1,2,3,4 delims=; eol=#" %%G IN (file.txt) DO imapsync --host1 imap.truc.org --user1 %%G --password1 %%H --host2 imap.trac.org --user2 %%I --password2 %%J
#
+# A line beginning with # is a comment thanks to option Win32 eol=#
+# Separator is character ; it can be changed by any character changing delims=;
+# Each line contains 4 columns, columns are parameters for --user1 --password1 --user2 --password2
+#
+# ==== Unix ====
# This file can be used on Unix with the following line in a Bourne shell script
-# { while IFS=';' read u1 p1 u2 p2; do imapsync --user1 "$u1" --password1 "$p1" --user2 "$u2" --password2 "$p2" ... ; done ; } < file.csv
-#
-#
+# { while IFS=';' read u1 p1 u2 p2; do imapsync --user1 "$u1" --password1 "$p1" --user2 "$u2" --password2 "$p2" ... ; done ; } < file.txt
+#
+# Separator is character ; it can be changed by any character changing IFS=';'
+# Each line contains 4 columns, columns are parameters for --user1 --password1 --user2 --password2
#
+# Now the data example
user001_1;password001_1;user001_2;password001_2
user002_1;password002_1;user002_2;password002_2
user003_1;password003_1;user003_2;password003_2
diff --git a/i3 b/i3
index 1a9d84c..95412a2 100755
--- a/i3
+++ b/i3
@@ -1,7 +1,7 @@
#!/bin/sh
-# $Id: i3,v 1.7 2011/03/15 01:15:48 gilles Exp gilles $
+# $Id: i3,v 1.8 2011/11/12 21:49:00 gilles Exp gilles $
BASE=`dirname $0`
-perl -I${BASE}/Mail-IMAPClient-3.28/lib ${BASE}/imapsync "$@"
+perl -I${BASE}/Mail-IMAPClient-3.30/lib ${BASE}/imapsync "$@"
diff --git a/imapsync b/imapsync
index c805ecf..e8a1215 100755
--- a/imapsync
+++ b/imapsync
@@ -20,7 +20,7 @@ Synchronise mailboxes between two imap servers.
Good at IMAP migration. More than 36 different IMAP server softwares
supported with success.
-$Revision: 1.456 $
+$Revision: 1.463 $
=head1 SYNOPSIS
@@ -383,8 +383,8 @@ Success stories reported with the following 44 imap servers
- hMailServer 5.3.3 [host2], 4.4.1 [host1] (see FAQ)
- iPlanet Messaging server 4.15, 5.1, 5.2
- IMail 7.15 (Ipswitch/Win2003), 8.12, 11.03 [host1]
- - Kerio 7.2.0P1 [host1]
- - MailEnable 4.23 [host1] [host2]
+ - Kerio 7.2.0 Patch 1 [host1] [host2]
+ - MailEnable 4.23 [host1] [host2], 4.26 [host1][host2], 5 [host1]
- MDaemon 7.0.1, 8.0.2, 8.1, 9.5.4 (Windows server 2003 R2 platform), 12 [host2],
12.0.3 [host1]
- Mercury 4.1 (Windows server 2000 platform)
@@ -393,7 +393,7 @@ Success stories reported with the following 44 imap servers
Exchange2007-EP-SP2,
Exchange 2010 RTM (Release to Manufacturing) [host2],
Exchange 2010 SP1 RU2[host2],
- - Mirapoint
+ - Mirapoint, 4.1.9-GA [host1]
- Netscape Mail Server 3.6 (Wintel !)
- Netscape Messaging Server 4.15 Patch 7
- OpenMail IMAP server B.07.00.k0 (Samsung Contact ?)
@@ -412,6 +412,7 @@ Success stories reported with the following 44 imap servers
(http://www.washington.edu/imap/)
- UW - QMail v2.1
- VMS, Imap part of TCP/IP suite of VMS 7.3.2
+ - Yahoo [host1]
- Zimbra-IMAP 3.0.1 GA 160, 3.1.0 Build 279, 4.0.5, 4.5.2, 4.5.6,
Zimbra 5.0.24_GA_3356.RHEL4 [host1], 5.5, 6.x
@@ -452,11 +453,11 @@ Pay special attention to options
--usecache
If you have many mailboxes to migrate think about a little
-shell program. Write a file called file.csv (for example)
+shell program. Write a file called file.txt (for example)
containing users and passwords.
The separator used in this example is ';'
-The file.csv file contains:
+The file.txt file contains:
user001_1;password001_1;user001_2;password001_2
user002_1;password002_1;user002_2;password002_2
@@ -470,11 +471,11 @@ On Unix the shell program can be:
{ while IFS=';' read u1 p1 u2 p2; do
imapsync --host1 imap.side1.org --user1 "$u1" --password1 "$p1" \
--host2 imap.side2.org --user2 "$u2" --password2 "$p2" ...
- done ; } < file.csv
+ done ; } < file.txt
On Windows the batch program can be:
- FOR /F "tokens=1,2,3,4 delims=; eol=#" %%G IN (file.csv) DO imapsync ^
+ FOR /F "tokens=1,2,3,4 delims=; eol=#" %%G IN (file.txt) DO imapsync ^
--host1 imap.side1.org --user1 %%G --password1 %%H ^
--host2 imap.side2.org --user2 %%I --password2 %%J ...
@@ -516,7 +517,7 @@ Entries for imapsync:
Feedback (good or bad) will often be welcome.
-$Id: imapsync,v 1.456 2011/08/24 04:21:30 gilles Exp gilles $
+$Id: imapsync,v 1.463 2011/11/12 21:58:52 gilles Exp gilles $
=cut
@@ -622,7 +623,7 @@ my(
$max_msg_size_in_bytes,
$modules_version,
$delete2folders, $delete2foldersonly, $delete2foldersbutnot,
- $usecache, $debugcache,
+ $usecache, $debugcache, $cacheaftercopy,
$wholeheaderifneeded, %h1_msgs_copy_by_uid, $useuid, $h2_uidguess,
);
@@ -630,7 +631,7 @@ my(
# global variables initialisation
-$rcs = '$Id: imapsync,v 1.456 2011/08/24 04:21:30 gilles Exp gilles $ ';
+$rcs = '$Id: imapsync,v 1.463 2011/11/12 21:58:52 gilles Exp gilles $ ';
$total_bytes_transferred = 0;
$total_bytes_skipped = 0;
@@ -705,6 +706,7 @@ if ( $fast ) {
# Activate --usecache if --useuid is set and no --nousecache
$usecache = 1 if ( $useuid and ( ! defined( $usecache ) ) ) ;
+$cacheaftercopy = 1 if ( $usecache and ( ! defined( $cacheaftercopy ) ) ) ;
print banner_imapsync(@argv_copy);
@@ -739,6 +741,8 @@ $skipsize = (defined $skipsize) ? $skipsize : 1;
$uid1 = defined($uid1) ? $uid1 : 1;
$uid2 = defined($uid2) ? $uid2 : 1;
+$subscribe = defined($subscribe) ? $subscribe : 1;
+
# Allow size mismatch by default
$allowsizemismatch = defined($allowsizemismatch) ? $allowsizemismatch : 1;
@@ -878,7 +882,7 @@ if ( ! ( 1
and $usecache
and ! $delete ) ) {
die_clean(
-"Problem --usecache can not be used safely with options --maxsize--minsize --maxage --minage
+"Problem --usecache can not be used safely with options --maxsize --minsize --maxage --minage
Use --nousecache or suppress the --max* --min* options\n" ) ;
}
@@ -1299,6 +1303,7 @@ FOLDER: foreach my $h1_fold (@h1_folders_wanted) {
}
my $h2_uidnext = $imap2->uidnext( $h2_fold ) ;
+ $debug and print "uidnext h2: $h2_uidnext\n" ;
$h2_uidguess = $h2_uidnext ;
MESS: foreach my $m_id (@h1_hash_keys_sorted_by_uid) {
my $h1_size = $h1_hash{$m_id}{'s'};
@@ -1822,8 +1827,8 @@ sub banner_imapsync {
my @argv_copy = @_;
my $banner_imapsync = join("",
'$RCSfile: imapsync,v $ ',
- '$Revision: 1.456 $ ',
- '$Date: 2011/08/24 04:21:30 $ ',
+ '$Revision: 1.463 $ ',
+ '$Date: 2011/11/12 21:58:52 $ ',
"\n",localhost_info(), "\n",
"Command line used:\n",
"$0 ", command_line_nopassword(@argv_copy), "\n",
@@ -2694,11 +2699,11 @@ sub copy_message {
$new_id = lastuid( $imap2, $h2_fold, $h2_uidguess ) ;
}
printf( "msg %s/%-19s copied to %s/%-10s\n", $h1_fold, "$h1_msg {$string_len}", $h2_fold, $new_id );
- $h2_uidguess++;
+ $h2_uidguess += 1 ;
$total_bytes_transferred += $h1_size;
$nb_msg_transferred += 1;
- $debugcache and print "touch $cache_dir/${h1_msg}_$new_id\n" if ( $usecache ) ;
- touch( "$cache_dir/${h1_msg}_$new_id" ) if ( $usecache and $new_id =~ m{^\d+$} );
+ $debugcache and print "touch $cache_dir/${h1_msg}_$new_id\n" if ( $usecache and $cacheaftercopy and $new_id =~ m{^\d+$} ) ;
+ touch( "$cache_dir/${h1_msg}_$new_id" ) if ( $usecache and $cacheaftercopy and $new_id =~ m{^\d+$} ) ;
if ( $delete ) {
print "msg $h1_fold/$h1_msg deleted on host1\n";
unless($dry) {
@@ -2731,8 +2736,8 @@ sub cache_map {
$debugcache and print "C12: $file\n" ;
( $uid1, $uid2 ) = match_a_cache_file( $file ) ;
- if ( exists( $h1_msgs_hash_ref->{ $uid1 } )
- and exists( $h2_msgs_hash_ref->{ $uid2 } ) ) {
+ if ( exists( $h1_msgs_hash_ref->{ $uid1 // q{} } )
+ and exists( $h2_msgs_hash_ref->{ $uid2 // q{} } ) ) {
# keep only the greatest uid2
# 130_2301 and
# 130_231 => keep only 130 -> 2301
@@ -3396,6 +3401,7 @@ sub get_options {
"releasecheck!" => \$releasecheck,
"modules_version!" => \$modules_version,
"usecache!" => \$usecache,
+ "cacheaftercopy!" => \$cacheaftercopy,
"debugcache!" => \$debugcache,
"useuid!" => \$useuid,
);
@@ -3580,7 +3586,7 @@ sub check_last_release {
}
sub imapsync_version {
- my $rcs = '$Id: imapsync,v 1.456 2011/08/24 04:21:30 gilles Exp gilles $ ';
+ my $rcs = '$Id: imapsync,v 1.463 2011/11/12 21:58:52 gilles Exp gilles $ ';
$rcs =~ m/,v (\d+\.\d+)/;
my $VERSION = ($1) ? $1: "UNKNOWN";
return($VERSION);
@@ -3808,7 +3814,7 @@ Several options are mandatory.
--dry : do nothing, just print what would be done.
--subscribed : transfers subscribed folders.
--subscribe : subscribe to the folders transferred on the
- host2 that are subscribed on host1.
+ host2 that are subscribed on host1. On by default.
--subscribe_all : subscribe to the folders transferred on the
host2 even if they are not subscribed on host1.
--nofoldersizes : Do not calculate the size of each folder in bytes
diff --git a/index.shtml b/index.shtml
index 176cf9e..e0918a6 100644
--- a/index.shtml
+++ b/index.shtml
@@ -5,7 +5,7 @@
Imapsync: an IMAP migration tool ( release )
-
+
@@ -29,8 +29,8 @@
@@ -39,11 +39,8 @@
Welcome to the imapsync web site!
-Ten years old since release 1.1!
-(on Friday 29 July 2011)
-
What is imapsync?
imapsync software is a command line tool allowing incremental and
@@ -59,13 +56,22 @@ where the user plays independently on both sides. Use offlineimap
(written by John Goerzen) for this purpose.
-Some numbers
+Some numbers for 2011
- Number of imapsync users per month: between 2 and 3 thousands users
-- Number of imapsync transfers per month: between 3 and 8 millions transfers
-- Pourcentage of Windows users : 10%
-- Biggest user usage: 5 millions of IMAP mailbox transfers in a month (one every 2 seconds)
+- Number of imapsync transfers per month: between 3 and 11 millions transfers
+- Pourcentage between operating systems users running imapsync:
+
+- Linux: 65 %
+- Win32: 18 %
+- Darwin: 11 %
+- FreeBSD: 6 %
+- Solaris: 0.4 %
+- OpenBSD: 0.1 %
+
+
+- Biggest user usage: more than 11 millions of IMAP mailbox transfers
@@ -81,37 +87,32 @@ where the user plays independently on both sides. Use offlineimap
New features or bugfixes since previous releases:
+- 1.463
+- Update: include and use of Mail-IMAPClient-3.30 (imapsync.exe)
+- Usability: --subscribe option is on by defaut.
+- BugFix: Added --nocacheaftercopy to avoid bad uids in cache with --useuid or --usecache and strange uid generator like dbmail 2.2.17
+- BugFix: Avoid Perl warning 'Use of uninitialized value $uid1 in exists'. Thanks to Klaus Franken
+
+
+
+
+- 1.456
+- Added a file.txt example to batch massive migration (many mailboxes) on Windows or Unix
+- Added support to Yahoo as host1 (just add --sep1 "/" option. Add --ssl1 for encryption)
+- Empty default value for $h1_flags $h2_flags to avoid useless Perl warnings.
+- MDaemon 12.0.3 failure as host2 (successive APPEND are buggy on MDaemon)
+
+
+
- 1.452
- New feature: Added --search option allowing to select messages with the powerful IMAP SEARCH command.
- Bugfix: Date reference to select messages with --maxdate --mindate is the beginning of imapsync run now.
- Bugfix: Fixed ps call to work with Solaris 10. Thanks to Daniel Rohde.
- Success: Kerio 7.2.0P1 success story.
-- Success: MDaemon 12.0.3 success story.
-
-
-- 1.446
-- Bugfix: Better --idatefromheader behavior (thank to Dax Kelson patches).
-- Usability: Now --delete2 sets --uidexpunge2 instead of --expunge2 if possible.
-- Usability: Adapted the usage output multiline character to Unix or Win, \ or ^
-- Bugfix: Avoid a "not a number" warning when size is null.
-- Bugfix: Added "Date" in the default --useheader list. It is ("Message-Id", "Message-ID", "Date")
-- Bugfix: allows bad header beginning with a blank character.
-
-- 1.434
-- Bugfix: Changed the way imapsync knows whether a folder exists or not. Exchange might be happy and stop deconnecting for this reason.
-- Bugfix: Reconnections are well done in TLS mode now.
-- Bugfix: IMAP RFC 3501 and some imap servers require internal dates have a zone data. Default to +0000 when host1 doesn't give it.
-- Bugfix: Options --maxsize --minsize now really work with --useuid (1.422 had a cache issue).
-- Bugfix: Improved the way imapsync deals with headers:
- - Stopped getting first 2KB body of message. Not a good idea in practice.
- - If massive get headers fails then take the whole header one by one (instead of body).
- - Default is like --useheader "Message-Id" --useheader "Message-ID" (instead of just "Message-Id").
- - Use header "Message-Id" and header "Date" as md5 signature when taking the whole header.
+- Success: MDaemon 12.0.3 success story as host1.
-
-
This document last modified on
-($Id: index.shtml,v 1.86 2011/08/03 01:26:05 gilles Exp gilles $)
+($Id: index.shtml,v 1.92 2011/11/12 23:45:34 gilles Exp gilles $)
diff --git a/memo b/memo
index cebdf78..5c988e7 100644
--- a/memo
+++ b/memo
@@ -1,6 +1,6 @@
#!/bin/sh
-# $Id: memo,v 1.35 2011/08/22 00:31:14 gilles Exp gilles $
+# $Id: memo,v 1.38 2011/11/07 15:12:06 gilles Exp gilles $
software_version() {
@@ -14,31 +14,71 @@ statistics_lfo() {
cat < stats_imapsync_${year}.ip
+ )
+}
+
+echo statistics_VERSION_yearly_os
+statistics_VERSION_yearly_os() {
+ year=${1:-`date '+%Y'`}
+ (
+ cd /home/lf/glamiral/imapsync_stats
+ Linux=`grep linux stats_imapsync_${year}.ip | wc -l`
+ Win32=`grep MSWin32 stats_imapsync_${year}.ip | wc -l`
+ Darwin=`grep darwin stats_imapsync_${year}.ip | wc -l`
+ FreeBSD=`grep freebsd stats_imapsync_${year}.ip | wc -l`
+ Solaris=`grep solaris stats_imapsync_${year}.ip | wc -l`
+ OpenBSD=`grep openbsd stats_imapsync_${year}.ip | wc -l`
+ Nb_All=`cat stats_imapsync_${year}.ip | wc -l`
+ for OS in Linux Win32 Darwin FreeBSD Solaris OpenBSD; do
+ #echo $OS `eval "echo \\$$OS"` / $Nb_All
+ Nb_OS=`eval "echo \\$$OS"`
+ PerCent=`echo "scale=2; 100*$Nb_OS/$Nb_All" | bc -l`
+ echo $OS $PerCent %
+ done
+ )
+}
+
+
echo statistics_VERSION_synthesis
statistics_VERSION_synthesis() {
+ year=${1:-`date '+%Y'`}
(
cd /home/lf/glamiral/imapsync_stats
echo Nb users each month
- wc -l *.ip
+ wc -l stats_imapsync_${year}_??.ip
+ echo Nb users each year
+ wc -l stats_imapsync_????.ip
echo Nb runs each month
- tail -n 1 *.runs
+ tail -n 1 stats_imapsync_${year}_??.runs
+ echo % Operating systems
+ statistics_VERSION_yearly_os $year
+ echo Biggest users
+ tail -n 5 stats_imapsync_${year}.ip
)
}
@@ -128,11 +206,57 @@ statistics_VERSION_monthly_ip() {
)
}
-echo statistics_VERSION_yearly_ip
-statistics_VERSION_yearly_ip() {
+echo statistics_VERSION_monthly_os 08
+statistics_VERSION_monthly_os() {
+ month=${1:-`date '+%m'`}
(
cd /home/imapsync/imapsync_stats
- cut -d ' ' -f 1,12,13,18,19 access.log_2011????.imapsync_VERSION |sort -n |uniq -c|sort -n > stats_imapsync_2011.ip
+ Linux=`grep linux stats_imapsync_2011_${month}.ip | wc -l`
+ Win32=`grep MSWin32 stats_imapsync_2011_${month}.ip | wc -l`
+ Darwin=`grep darwin stats_imapsync_2011_${month}.ip | wc -l`
+ FreeBSD=`grep freebsd stats_imapsync_2011_${month}.ip | wc -l`
+ Solaris=`grep solaris stats_imapsync_2011_${month}.ip | wc -l`
+ OpenBSD=`grep openbsd stats_imapsync_2011_${month}.ip | wc -l`
+ Nb_All=`cat stats_imapsync_2011_${month}.ip | wc -l `
+ for OS in Linux Win32 Darwin FreeBSD Solaris OpenBSD; do
+ #echo $OS `eval "echo \\$$OS"` / $Nb_All
+ Nb_OS=`eval "echo \\$$OS"`
+ PerCent=`echo "scale=2; 100*$Nb_OS/$Nb_All" | bc -l`
+ echo $OS $PerCent%
+ done
+ )
+}
+
+echo statistics_VERSION_yearly_os
+statistics_VERSION_yearly_os() {
+ year=${1:-`date '+%Y'`}
+ (
+ cd /home/imapsync/imapsync_stats
+ Linux=`grep linux stats_imapsync_${year}.ip | wc -l`
+ Win32=`grep MSWin32 stats_imapsync_${year}.ip | wc -l`
+ Darwin=`grep darwin stats_imapsync_${year}.ip | wc -l`
+ FreeBSD=`grep freebsd stats_imapsync_${year}.ip | wc -l`
+ Solaris=`grep solaris stats_imapsync_${year}.ip | wc -l`
+ OpenBSD=`grep openbsd stats_imapsync_${year}.ip | wc -l`
+ Nb_All=`cat stats_imapsync_${year}.ip | wc -l`
+ for OS in Linux Win32 Darwin FreeBSD Solaris OpenBSD; do
+ #echo $OS `eval "echo \\$$OS"` / $Nb_All
+ Nb_OS=`eval "echo \\$$OS"`
+ PerCent=`echo "scale=2; 100*$Nb_OS/$Nb_All" | bc -l`
+ echo $OS $PerCent %
+ done
+ )
+}
+
+
+
+
+echo statistics_VERSION_yearly_ip
+statistics_VERSION_yearly_ip() {
+ year=${1:-`date '+%Y'`}
+ (
+ cd /home/imapsync/imapsync_stats
+ cut -d ' ' -f 1,12,13,18,19 access.log_${year}????.imapsync_VERSION |sort -n |uniq -c|sort -n > stats_imapsync_${year}.ip
)
}
@@ -170,12 +294,19 @@ statistics_VERSION_monthly() {
echo statistics_VERSION_synthesis
statistics_VERSION_synthesis() {
+ year=${1:-`date '+%Y'`}
(
cd /home/imapsync/imapsync_stats
echo Nb users each month
- wc -l *.ip
+ wc -l stats_imapsync_${year}_??.ip
+ echo Nb users each year
+ wc -l stats_imapsync_????.ip
echo Nb runs each month
- tail -n 1 *.runs
+ tail -n 1 stats_imapsync_${year}_??.runs
+ echo % Operating systems
+ statistics_VERSION_yearly_os $year
+ echo Biggest users
+ tail -n 5 stats_imapsync_${year}.ip
)
}
diff --git a/test2.bat b/test2.bat
index e9a62a7..9c0f134 100755
--- a/test2.bat
+++ b/test2.bat
@@ -1,5 +1,5 @@
-REM $Id: test2.bat,v 1.5 2011/08/24 06:48:44 gilles Exp gilles $
+REM $Id: test2.bat,v 1.6 2011/08/24 21:55:56 gilles Exp gilles $
cd C:\msys\1.0\home\Admin\imapsync
REM perl ./imapsync --host1 p --user1 tata --passfile1 secret.tata --host2 p --user2 titi --passfile2 secret.titi --delete2 --expunge2 --folder INBOX
@@ -19,6 +19,6 @@ REM --folder INBOX.bigmail
REM perl imapsync
REM perl imapsync --host1 p --user1 tata --passfile1 secret.tata --host2 p --user2 titi --passfile2 secret.titi --nofoldersize --folder INBOX.yop.yap --regexflag "s/\\ /\\/g" --debugflags
-FOR /F "tokens=1,2,3,4 delims=; eol=#" %%G IN (file.csv) DO imapsync ^
+FOR /F "tokens=1,2,3,4 delims=; eol=#" %%G IN (file.txt) DO imapsync ^
--host1 imap.side1.org --user1 %%G --password1 %%H ^
--host2 imap.side2.org --user2 %%I --password2 %%J
diff --git a/tests.sh b/tests.sh
index 7e8fcf9..2bc62e6 100644
--- a/tests.sh
+++ b/tests.sh
@@ -1,6 +1,6 @@
#!/bin/sh
-# $Id: tests.sh,v 1.174 2011/08/24 06:48:23 gilles Exp gilles $
+# $Id: tests.sh,v 1.182 2011/11/12 23:40:55 gilles Exp gilles $
# Example 1:
# CMD_PERL='perl -I./Mail-IMAPClient-3.25/lib' sh -x tests.sh
@@ -20,11 +20,15 @@ HOST2=${HOST2:-'localhost'}
echo HOST2=$HOST2
# most tests use:
-CMD_PERL=${CMD_PERL:-'perl -I./Mail-IMAPClient-2.2.9'}
# few debugging tests use:
CMD_PERL_2xx='perl -I./Mail-IMAPClient-2.2.9'
-CMD_PERL_3xx='perl -I./Mail-IMAPClient-3.28/lib'
+CMD_PERL_3xx='perl -I./Mail-IMAPClient-3.30/lib'
+
+CMD_PERL=${CMD_PERL:-$CMD_PERL_3xx}
+
+#echo $CMD_PERL
+#exit
#### Shell pragmas
@@ -542,14 +546,14 @@ ll_nosyncinternaldates() {
ll_idatefromheader() {
- can_send && sendtestmessage
+ # can_send && sendtestmessage
$CMD_PERL ./imapsync \
--host1 $HOST1 --user1 tata \
--passfile1 ../../var/pass/secret.tata \
--host2 $HOST2 --user2 titi \
--passfile2 ../../var/pass/secret.titi \
- --folder INBOX.oneemail \
+ --folder INBOX.oneemail2 \
--idatefromheader --debug --dry
}
@@ -575,14 +579,14 @@ ll_subscribed()
}
-ll_subscribe()
+ll_nosubscribe()
{
$CMD_PERL ./imapsync \
--host1 $HOST1 --user1 tata \
--passfile1 ../../var/pass/secret.tata \
--host2 $HOST2 --user2 titi \
--passfile2 ../../var/pass/secret.titi \
- --subscribed --subscribe
+ --subscribed --nosubscribe
}
ll_justconnect()
@@ -802,6 +806,28 @@ ll_search_SENTSINCE()
--search 'SENTSINCE 11-Jul-2011' --folder INBOX
}
+ll_search_BEFORE_delete2_useuid()
+{
+ can_send && sendtestmessage titi
+ $CMD_PERL ./imapsync \
+ --host1 $HOST1 --user1 tata \
+ --passfile1 ../../var/pass/secret.tata \
+ --host2 $HOST2 --user2 titi \
+ --passfile2 ../../var/pass/secret.titi \
+ --search 'BEFORE 29-Sep-2011' --folder INBOX --delete2 --useuid
+}
+
+ll_search_SENTBEFORE()
+{
+ can_send && sendtestmessage titi
+ $CMD_PERL ./imapsync \
+ --host1 $HOST1 --user1 tata \
+ --passfile1 ../../var/pass/secret.tata \
+ --host2 $HOST2 --user2 titi \
+ --passfile2 ../../var/pass/secret.titi \
+ --search 'SENTBEFORE 2-Oct-2011' --folder INBOX --delete2
+}
+
@@ -1238,7 +1264,8 @@ ll_regex_flag4()
--host2 $HOST2 --user2 titi \
--passfile2 ../../var/pass/secret.titi \
--folder INBOX.yop.yap --nofoldersizes \
- --regexflag 's/\$label1/\\label1/g' --debugflags
+ --regexflag 's/\$label1/\\label1/g' \
+ --regexflag "s/\\\$Forwarded//g" --debugflags
echo 'sudo rm -f /home/vmail/titi/.yop.yap/cur/*'
}
@@ -1283,10 +1310,10 @@ ll_tls_justlogin() {
ll_tls_devel() {
- CMD_PERL='perl -I./Mail-IMAPClient-2.2.9' ll_justlogin ll_ssl_justlogin \
-&& CMD_PERL='perl -I./Mail-IMAPClient-3.28/lib' ll_justlogin ll_ssl_justlogin \
-&& CMD_PERL='perl -I./Mail-IMAPClient-2.2.9' ll_tls_justconnect ll_tls_justlogin \
-&& CMD_PERL='perl -I./Mail-IMAPClient-3.28/lib' ll_tls_justconnect ll_tls_justlogin
+ CMD_PERL=$CMD_PERL_2xx ll_justlogin ll_ssl_justlogin \
+&& CMD_PERL=$CMD_PERL_3xx ll_justlogin ll_ssl_justlogin \
+&& CMD_PERL=$CMD_PERL_2xx ll_tls_justconnect ll_tls_justlogin \
+&& CMD_PERL=$CMD_PERL_3xx ll_tls_justconnect ll_tls_justlogin
}
ll_tls() {
@@ -1346,7 +1373,7 @@ ll_authmech_PLAIN() {
}
ll_authmech_NTLM() {
- $CMD_PERL -I./NTLM-1.05/blib/lib ./imapsync \
+ $CMD_PERL -I./NTLM-1.09/blib/lib ./imapsync \
--host1 mail.freshgrillfoods.com --user1 ktraster \
--passfile1 ../../var/pass/secret.ktraster \
--host2 $HOST2 --user2 titi \
@@ -1357,7 +1384,7 @@ ll_authmech_NTLM() {
}
ll_authmech_NTLM_domain() {
- $CMD_PERL -I./NTLM-1.05/blib/lib ./imapsync \
+ $CMD_PERL -I./NTLM-1.09/blib/lib ./imapsync \
--host1 mail.freshgrillfoods.com --user1 ktraster \
--passfile1 ../../var/pass/secret.ktraster \
--host2 $HOST2 --user2 titi \
@@ -1367,13 +1394,14 @@ ll_authmech_NTLM_domain() {
}
ll_authmech_NTLM_2() {
- $CMD_PERL -I./NTLM-1.05/blib/lib ./imapsync \
+ $CMD_PERL -I./NTLM-1.09/blib/lib ./imapsync \
--host1 mail.freshgrillfoods.com --user1 ktraster \
--passfile1 ../../var/pass/secret.ktraster \
--host2 $HOST2 --user2 titi \
--passfile2 ../../var/pass/secret.titi \
--authmech1 NTLM --dry
+
}
@@ -1556,8 +1584,6 @@ msw2() {
}
-
-
xxxxx_gmail() {
! ping -c1 imap.gmail.com || $CMD_PERL ./imapsync \
@@ -1569,7 +1595,11 @@ xxxxx_gmail() {
--user1 tata \
--passfile1 ../../var/pass/secret.tata \
--nofoldersizes \
- --justfolders --dry --prefix2 '[Gmail]/'
+ --justfolders \
+ --regextrans2 "s, +$,,g" --regextrans2 "s, +/,/,g" \
+ --exclude INBOX.yop.YAP
+
+#--dry --prefix2 '[Gmail]/'
}
xxxxx_gmail_2() {
@@ -1584,7 +1614,6 @@ xxxxx_gmail_2() {
--passfile2 ../../var/pass/secret.gilles_gmail \
--nofoldersizes \
--regextrans2 's,(.*),SMS,'
-#--dry --prefix2 '[Gmail]/'
}
xxxxx_gmail_3() {
@@ -1641,10 +1670,8 @@ gmail_xxxxx() {
--host2 $HOST2 \
--user2 tata \
--passfile2 ../../var/pass/secret.tata \
- --useheader 'Message-Id' \
- --useheader="X-Gmail-Received" \
--nofoldersizes \
- --prefix1 '[Gmail]/' --dry --justfolders
+ --dry --justfolders
}
@@ -1657,10 +1684,7 @@ gmail() {
--passfile1 ../../var/pass/secret.gilles_gmail \
--host2 $HOST2 \
--user2 tata \
- --passfile2 ../../var/pass/secret.tata \
- --useheader 'Message-Id' \
- --useheader="X-Gmail-Received" \
- --regextrans2 's/\[Gmail\]/Gmail/'
+ --passfile2 ../../var/pass/secret.tata
}
gmail_justfolders() {
@@ -1673,9 +1697,6 @@ gmail_justfolders() {
--host2 $HOST2 \
--user2 tata \
--passfile2 ../../var/pass/secret.tata \
- --useheader 'Message-Id' \
- --useheader="X-Gmail-Received" \
- --regextrans2 's/\[Gmail\]/Gmail/' \
--justfolders
}
@@ -1704,12 +1725,9 @@ gmail_gmail() {
--passfile1 ../../var/pass/secret.gilles_gmail \
--host2 imap.gmail.com \
--ssl2 \
- --user2 gilles.lamiral@gmail.com \
- --passfile2 ../../var/pass/secret.gilles_gmail \
- --useheader 'Message-Id' --useheader="X-Gmail-Received" \
- --regextrans2 's¤INBOX¤inbox_copy¤' \
- --folder INBOX \
- --allowsizemismatch
+ --user2 imapsync.gl@gmail.com \
+ --passfile2 ../../var/pass/secret.imapsync.gl_gmail \
+ --justfolders
}
@@ -1723,9 +1741,7 @@ gmail_gmail2() {
--ssl2 \
--user2 imapsync.gl@gmail.com \
--passfile2 ../../var/pass/secret.imapsync.gl_gmail \
- --useheader 'Message-Id' --skipsize \
- --folder INBOX \
- --allowsizemismatch
+ --folder INBOX
#--dry # --debug --debugimap # --authmech1 LOGIN
}
@@ -1743,8 +1759,11 @@ yahoo_xxxx_login() {
}
yahoo_xxxx() {
+# Yahoo works only with ssl (november 2011)
+# Could do plain port 143 before
! ping -c1 imap.mail.yahoo.com || $CMD_PERL ./imapsync \
--host1 imap.mail.yahoo.com \
+ --ssl1 \
--user1 glamiral \
--passfile1 ../../var/pass/secret.gilles_yahoo \
--host2 $HOST2 \
@@ -1752,8 +1771,6 @@ yahoo_xxxx() {
--passfile2 ../../var/pass/secret.titi \
--sep1 '.'
-# Yahoo works also with ssl
-# --ssl1 \
}
@@ -1769,7 +1786,7 @@ allow3xx() {
}
noallow3xx() {
- ! perl -I./Mail-IMAPClient-3.28/lib ./imapsync \
+ ! $CMD_PERL_3xx ./imapsync \
--host1 $HOST1 --user1 tata \
--passfile1 ../../var/pass/secret.tata \
--host2 $HOST2 --user2 titi \
@@ -1985,6 +2002,70 @@ ll_useuid_nousecache()
# specific tests
##########################
+dbmail_uid() {
+ # --useuid alone does not work on dbmaikl server 2.2.17 ready to run
+ # because uids are += 2 and uidnext is in fact uidnext + 1
+
+ if can_send; then
+ sendtestmessage
+ else
+ :
+ fi
+ $CMD_PERL ./imapsync \
+ --host1 $HOST1 --user1 tata \
+ --passfile1 ../../var/pass/secret.tata \
+ --host2 182.236.127.31 --user2 imapsynctest \
+ --passfile2 ../../var/pass/secret.dbmail \
+ --folder INBOX --fast --delete2 --expunge2 \
+ --usecache --useuid --nocacheaftercopy
+
+
+}
+
+dbmail_nocacheaftercopy() {
+ # Does work
+ $CMD_PERL ./imapsync \
+ --host1 $HOST1 --user1 tata \
+ --passfile1 ../../var/pass/secret.tata \
+ --host2 182.236.127.31 --user2 imapsynctest \
+ --passfile2 ../../var/pass/secret.dbmail \
+ --folder INBOX --fast --delete2 --expunge2 --usecache --nocacheaftercopy
+}
+
+dbmail_nocache() {
+ # Does work
+ $CMD_PERL ./imapsync \
+ --host1 $HOST1 --user1 tata \
+ --passfile1 ../../var/pass/secret.tata \
+ --host2 182.236.127.31 --user2 imapsynctest \
+ --passfile2 ../../var/pass/secret.dbmail \
+ --folder INBOX --fast --delete2 --expunge2
+}
+
+
+
+
+bluehost2() {
+$CMD_PERL ./imapsync \
+ --host1 imap.mail.yahoo.com --tls1 \
+ --user1 dalton@piila.com \
+ --passfile1 ../../var/pass/secret.bluehost2 \
+ --host2 box766.bluehost.com --ssl2 \
+ --user2 dalton@piila.com \
+ --passfile2 ../../var/pass/secret.bluehost2 \
+ --sep1 '/' --useuid --regextrans2 's/Inbox/INBOX/' --regextrans2 's,/,_,'
+}
+
+bluehost() {
+$CMD_PERL ./imapsync \
+ --host1 imap.mail.yahoo.com --tls1 \
+ --user1 pii@piila.com \
+ --passfile1 ../../var/pass/secret.bluehost \
+ --host2 box766.bluehost.com --ssl2 \
+ --user2 pii@piila.com \
+ --passfile2 ../../var/pass/secret.bluehost \
+ --sep1 '/' --usecache --useuid --regextrans2 's/Inbox/INBOX/'
+}
b2btech_1() {
$CMD_PERL ./imapsync \
@@ -2410,7 +2491,7 @@ ll_nosyncinternaldates
ll_idatefromheader
ll_folder_rev
ll_subscribed
-ll_subscribe
+ll_nosubscribe
ll_justfoldersizes
ll_authmd5
ll_authmd51