private function extract($source)
{
try {
$task = new Task\Extract($source);
$dest = $task->run($this->verbosity());
} catch (\Exception $e) {
if (false === strpos($e->getMessage(), "checksum mismatch")) {
throw $e;
}
$dest = (new Task\PaxFixup($source))->run($this->verbosity());
}
$this->cleanup[] = new Task\Cleanup($dest);
return $dest;
}