registration: Allow the mtime of extension.json files to be zero
authorEd Schouten <ed@nuxi.nl>
Thu, 7 Jun 2018 12:21:53 +0000 (14:21 +0200)
committerLegoktm <legoktm@member.fsf.org>
Thu, 7 Jun 2018 18:12:24 +0000 (18:12 +0000)
When creating Docker images of MediaWiki using the Bazel build system, I
noticed that I'm not able to load any extensions. This is due to the
fact that Bazel always generates container layers with mtimes of files
set to 1970-01-01 for determinism/reproducibility.

Relax the check a bit to only fail when the mtime is false, which
happens when filemtime() fails.

Bug: T196672
Change-Id: Ieaeb3113a7d9c44f29cca2d062c5bb11ebeada0d
(cherry picked from commit d7d5d3c82a84338bd2669284427193ea7a80bdbc)

includes/registration/ExtensionRegistry.php

index 0eb6a9b..aae5fc2 100644 (file)
@@ -107,7 +107,7 @@ class ExtensionRegistry {
                                throw new Exception( "$path does not exist!" );
                        }
                        // @codeCoverageIgnoreStart
-                       if ( !$mtime ) {
+                       if ( $mtime === false ) {
                                $err = error_get_last();
                                throw new Exception( "Couldn't stat $path: {$err['message']}" );
                                // @codeCoverageIgnoreEnd