diff --git a/src/Composer/Downloader/ZipDownloader.php b/src/Composer/Downloader/ZipDownloader.php
index 00f7fbd1b..6217aaa53 100644
--- a/src/Composer/Downloader/ZipDownloader.php
+++ b/src/Composer/Downloader/ZipDownloader.php
@@ -56,10 +56,6 @@ class ZipDownloader extends ArchiveDownloader
self::$hasZipArchive = class_exists('ZipArchive');
}
- if (null === self::$isWindows) {
- self::$isWindows = Platform::isWindows();
- }
-
if (!self::$hasZipArchive && !self::$hasSystemUnzip) {
// php.ini path is added to the error message to help users find the correct file
$iniMessage = IniHelper::getMessage();
@@ -68,6 +64,15 @@ class ZipDownloader extends ArchiveDownloader
throw new \RuntimeException($error);
}
+ if (null === self::$isWindows) {
+ self::$isWindows = Platform::isWindows();
+
+ if (!self::$isWindows && !self::$hasSystemUnzip) {
+ $this->io->writeError("As there is no 'unzip' command installed zip files are being unpacked using the PHP zip extension.");
+ $this->io->writeError("This may cause invalid reports of corrupted archives. Installing 'unzip' may remediate them.");
+ }
+ }
+
return parent::download($package, $path, $output);
}