These fixes are in the recently-released Mail::IMAPClient 3.43:
https://metacpan.org/source/PLOBBES/Mail-IMAPClient-3.43/Changes
v2: disable 'once' warning
#
# The license for this file differs from the rest of public-inbox.
#
#
# The license for this file differs from the rest of public-inbox.
#
-# Workaround some bugs in upstream Mail::IMAPClient when
+# Workaround some bugs in upstream Mail::IMAPClient <= 3.42 when
# compression is enabled:
# - reference cycle: https://rt.cpan.org/Ticket/Display.html?id=132654
# - read starvation: https://rt.cpan.org/Ticket/Display.html?id=132720
package PublicInbox::IMAPClient;
use strict;
use parent 'Mail::IMAPClient';
# compression is enabled:
# - reference cycle: https://rt.cpan.org/Ticket/Display.html?id=132654
# - read starvation: https://rt.cpan.org/Ticket/Display.html?id=132720
package PublicInbox::IMAPClient;
use strict;
use parent 'Mail::IMAPClient';
+unless (eval('use Mail::IMAPClient 3.43')) {
+require Errno;
+no warnings 'once';
my ($self) = @_;
# BUG? strict check on capability commented out for now...
my ($self) = @_;
# BUG? strict check on capability commented out for now...
# I/O readiness notifications (select, poll). Refactoring
# callers will be needed in the unlikely case somebody wants
# to use edge-triggered notifications (EV_CLEAR, EPOLLET).
# I/O readiness notifications (select, poll). Refactoring
# callers will be needed in the unlikely case somebody wants
# to use edge-triggered notifications (EV_CLEAR, EPOLLET).
+};
+} # $Mail::IMAPClient::VERSION < 3.43