diff --git a/Dockerfile b/Dockerfile index b99c0427..d2cf4fe4 100644 --- a/Dockerfile +++ b/Dockerfile @@ -99,9 +99,12 @@ RUN set -x; \ # Skins # The Minerva Neue, MonoBook, Timeless, Vector and Vector 2022 skins are bundled into MediaWiki and do not need to be # separately installed. -# The Chameleon skin is downloaded via Composer and also does not need to be installed. RUN set -x; \ cd $MW_HOME/skins \ + # Chameleon (v. 4.2.1) + && git clone https://github.com/ProfessionalWiki/chameleon $MW_HOME/skins/Chameleon \ + && cd $MW_HOME/skins/Chameleon \ + && git checkout -q f34a56528ada14ac07e1b03beda41f775ef27606 \ # CologneBlue && git clone -b $MW_VERSION --single-branch https://github.com/wikimedia/mediawiki-skins-CologneBlue $MW_HOME/skins/CologneBlue \ && cd $MW_HOME/skins/CologneBlue \ @@ -126,9 +129,7 @@ RUN set -x; \ # PdfHandler, Poem, Renameuser, Replace Text, Scribunto, SecureLinkFixer, SpamBlacklist, SyntaxHighlight, TemplateData, # TextExtracts, TitleBlacklist, VisualEditor, WikiEditor. # The following extensions are downloaded via Composer and also do not need to be downloaded here: Bootstrap, -# BootstrapComponents, Maps, Mermaid, Semantic Breadcrumb Links, Semantic Compound Queries, Semantic Extra Special -# Properties, Semantic MediaWiki (along with all its helper library extensions, like DataValues), Semantic Result -# Formats, Semantic Scribunto, SimpleBatchUpload, SubPageList. +# DataValues (and related extensions like DataValuesCommon), ParserHooks. RUN set -x; \ cd $MW_HOME/extensions \ # AdminLinks (v. 0.6.1) @@ -159,6 +160,10 @@ RUN set -x; \ && git clone --single-branch -b $MW_VERSION https://github.com/wikimedia/mediawiki-extensions-BetaFeatures $MW_HOME/extensions/BetaFeatures \ && cd $MW_HOME/extensions/BetaFeatures \ && git checkout -q 09cca44341f9695446c4e9fc9e8fec3fdcb197b0 \ + # BootstrapComponents (v. 5.1.0) + && git clone --single-branch -b master https://github.com/oetterer/BootstrapComponents $MW_HOME/extensions/BootstrapComponents \ + && cd $MW_HOME/extensions/BootstrapComponents \ + && git checkout -q 665c3dee1d9e3f4bcb18dd1920fe27b70e334574 \ # BreadCrumbs2 && git clone --single-branch -b $MW_VERSION https://github.com/wikimedia/mediawiki-extensions-BreadCrumbs2 $MW_HOME/extensions/BreadCrumbs2 \ && cd $MW_HOME/extensions/BreadCrumbs2 \ @@ -359,6 +364,10 @@ RUN set -x; \ && git clone --single-branch -b $MW_VERSION https://github.com/wikimedia/mediawiki-extensions-MagicNoCache $MW_HOME/extensions/MagicNoCache \ && cd $MW_HOME/extensions/MagicNoCache \ && git checkout -q 93534c12dac0e821c46c94b21053d274a6e557de \ + # Maps + && git clone --single-branch -b master https://github.com/ProfessionalWiki/Maps $MW_HOME/extensions/Maps \ + && cd $MW_HOME/extensions/Maps \ + && git checkout -q 5c87d702b30bb132d89ec03d24b7c19a9805db87 \ # MassMessage && git clone --single-branch -b $MW_VERSION https://github.com/wikimedia/mediawiki-extensions-MassMessage $MW_HOME/extensions/MassMessage \ && cd $MW_HOME/extensions/MassMessage \ @@ -371,6 +380,10 @@ RUN set -x; \ && git clone --single-branch -b $MW_VERSION https://github.com/wikimedia/mediawiki-extensions-MediaUploader $MW_HOME/extensions/MediaUploader \ && cd $MW_HOME/extensions/MediaUploader \ && git checkout -q 1edd91c506c1c0319e7b9a3e71d639130760b1fd \ + # Mermaid (v. 3.1.0) + && git clone --single-branch -b master https://github.com/SemanticMediaWiki/Mermaid $MW_HOME/extensions/Mermaid \ + && cd $MW_HOME/extensions/Mermaid \ + && git checkout -q fd792683fef3c84a7cdd56f8f474c4da0dd630f2 \ # MintyDocs (1.0) && git clone --single-branch -b master https://github.com/wikimedia/mediawiki-extensions-MintyDocs $MW_HOME/extensions/MintyDocs \ && cd $MW_HOME/extensions/MintyDocs \ @@ -439,6 +452,14 @@ RUN set -x; \ && git clone --single-branch -b $MW_VERSION https://github.com/wikimedia/mediawiki-extensions-SaveSpinner $MW_HOME/extensions/SaveSpinner \ && cd $MW_HOME/extensions/SaveSpinner \ && git checkout -q 1e819e2fff7fad6999bafe71d866c3af50836c42 \ + # SemanticBreadcrumbLinks + && git clone --single-branch -b master https://github.com/SemanticMediaWiki/SemanticBreadcrumbLinks $MW_HOME/extensions/SemanticBreadcrumbLinks \ + && cd $MW_HOME/extensions/SemanticBreadcrumbLinks \ + && git checkout -q 87a69003743f1de52338f4717cfcf5218ca5a743 \ + # SemanticCompoundQueries (v. 2.2.0) + && git clone --single-branch -b master https://github.com/SemanticMediaWiki/SemanticCompoundQueries $MW_HOME/extensions/SemanticCompoundQueries \ + && cd $MW_HOME/extensions/SemanticCompoundQueries \ + && git checkout -q eeb514393fdf2e80ae7084839d8803ee32ae3da4 \ # SemanticDependencyUpdater (v. 2.0.2) && git clone --single-branch -b master https://github.com/gesinn-it/SemanticDependencyUpdater $MW_HOME/extensions/SemanticDependencyUpdater \ && cd $MW_HOME/extensions/SemanticDependencyUpdater \ @@ -447,10 +468,22 @@ RUN set -x; \ && git clone --single-branch -b $MW_VERSION https://gerrit.wikimedia.org/r/mediawiki/extensions/SemanticDrilldown $MW_HOME/extensions/SemanticDrilldown \ && cd $MW_HOME/extensions/SemanticDrilldown \ && git checkout -q e960979ec5a3b1e662b3742cee7e7ef4056f9a46 \ + # SemanticExtraSpecialProperties (v. 3.0.4) + && git clone --single-branch -b master https://github.com/SemanticMediaWiki/SemanticExtraSpecialProperties $MW_HOME/extensions/SemanticExtraSpecialProperties \ + && cd $MW_HOME/extensions/SemanticExtraSpecialProperties \ + && git checkout -q e449633082a4bf7dcae119b6a6d0bfeec8e3cfe8 \ + # SemanticScribunto (v. 2.2.0) + && git clone --single-branch -b master https://github.com/SemanticMediaWiki/SemanticScribunto $MW_HOME/extensions/SemanticScribunto \ + && cd $MW_HOME/extensions/SemanticScribunto \ + && git checkout -q 1c616a4c4da443b3433000d6870bb92c184236fa \ # SemanticTasks && git clone https://github.com/WikiTeq/SemanticTasks.git $MW_HOME/extensions/SemanticTasks \ && cd $MW_HOME/extensions/SemanticTasks \ && git checkout -q 70ddd8cf6090139ce5ee6fdf1e7f3a9f2c68d5d3 \ + # SimpleBatchUpload (v. 2.0.0) + && git clone https://github.com/ProfessionalWiki/SimpleBatchUpload $MW_HOME/extensions/SimpleBatchUpload \ + && cd $MW_HOME/extensions/SimpleBatchUpload \ + && git checkout -q 3b9e248b49d7fbeb81d7da32078db7040809e724 \ # SimpleChanges && git clone --single-branch -b $MW_VERSION https://github.com/wikimedia/mediawiki-extensions-SimpleChanges $MW_HOME/extensions/SimpleChanges \ && cd $MW_HOME/extensions/SimpleChanges \ @@ -459,6 +492,14 @@ RUN set -x; \ && git clone https://github.com/SemanticMediaWiki/SemanticFormsSelect.git $MW_HOME/extensions/SemanticFormsSelect \ && cd $MW_HOME/extensions/SemanticFormsSelect \ && git checkout 4b56baa752401b4ff9fe555fd57fc5c3309601d4 \ + # SemanticMediaWiki (v. 4.1.2) + && git clone https://github.com/SemanticMediaWiki/SemanticMediaWiki $MW_HOME/extensions/SemanticMediaWiki \ + && cd $MW_HOME/extensions/SemanticMediaWiki \ + && git checkout -q 5c94879171d5f741b896828c25a9f2bb07a03dff \ + # SemanticResultFormats (v. 4.0.2) + && git clone https://github.com/SemanticMediaWiki/SemanticResultFormats $MW_HOME/extensions/SemanticResultFormats \ + && cd $MW_HOME/extensions/SemanticResultFormats \ + && git checkout -q d5196722a56f9b65475be68d1e97063d7b975cb9 \ # SimpleMathJax && git clone --single-branch https://github.com/jmnote/SimpleMathJax.git $MW_HOME/extensions/SimpleMathJax \ && cd $MW_HOME/extensions/SimpleMathJax \ @@ -475,6 +516,10 @@ RUN set -x; \ && git clone --single-branch -b $MW_VERSION https://github.com/wikimedia/mediawiki-extensions-SocialProfile $MW_HOME/extensions/SocialProfile \ && cd $MW_HOME/extensions/SocialProfile \ && git checkout -q 74fcf9bead948ec0419eea10800c9331bcc1273e \ + # SubPageList (v. 3.0.0) + && git clone https://github.com/ProfessionalWiki/SubPageList $MW_HOME/extensions/SubPageList \ + && cd $MW_HOME/extensions/SubPageList \ + && git checkout -q c016dcdb7866f20319731e6497b48fd43756505e \ # TemplateStyles && git clone --single-branch -b $MW_VERSION https://github.com/wikimedia/mediawiki-extensions-TemplateStyles $MW_HOME/extensions/TemplateStyles \ && cd $MW_HOME/extensions/TemplateStyles \ @@ -568,13 +613,25 @@ RUN set -x; \ RUN set -x; \ sed -i 's="monolog/monolog": "2.2.0",="monolog/monolog": "^2.2",=g' $MW_HOME/composer.json +# Patch some SMW-based extensions' composer.json files to avoid Composer-based downloading of SMW. + +# SemanticBreadcrumbLinks +COPY _sources/patches/semantic-breadcrumb-links-composer-reqs.patch /tmp/semantic-breadcrumb-links-composer-reqs.patch +RUN set -x; \ + cd $MW_HOME/extensions/SemanticBreadcrumbLinks \ + && git apply /tmp/semantic-breadcrumb-links-composer-reqs.patch + +# SemanticResultFormats +COPY _sources/patches/semantic-result-formats-composer-reqs.patch /tmp/semantic-result-formats-composer-reqs.patch +RUN set -x; \ + cd $MW_HOME/extensions/SemanticResultFormats \ + && git apply /tmp/semantic-result-formats-composer-reqs.patch + # Composer dependencies COPY _sources/configs/composer.canasta.json $MW_HOME/composer.local.json RUN set -x; \ cd $MW_HOME \ && composer update --no-dev \ - # We need the 2nd update for SMW dependencies - && composer update --no-dev \ # Fix up future use of canasta-extensions directory for composer autoload && sed -i 's/extensions/canasta-extensions/g' $MW_HOME/vendor/composer/autoload_static.php \ && sed -i 's/extensions/canasta-extensions/g' $MW_HOME/vendor/composer/autoload_files.php \ @@ -585,7 +642,19 @@ RUN set -x; \ && sed -i 's/skins/canasta-skins/g' $MW_HOME/vendor/composer/autoload_classmap.php \ && sed -i 's/skins/canasta-skins/g' $MW_HOME/vendor/composer/autoload_psr4.php -# Patches +# Other patches + +# Add autoloading to several extensions' extension.json file, which normally require +# Composer autoloading +COPY _sources/patches/semantic-compound-queries-autoload.patch /tmp/semantic-compound-queries-autoload.patch +RUN set -x; \ + cd $MW_HOME/extensions/SemanticCompoundQueries \ + && git apply /tmp/semantic-compound-queries-autoload.patch + +COPY _sources/patches/semantic-scribunto-autoload.patch /tmp/semantic-scribunto-autoload.patch +RUN set -x; \ + cd $MW_HOME/extensions/SemanticScribunto \ + && git apply /tmp/semantic-scribunto-autoload.patch # Add Bootstrap to LocalSettings.php if the web installer added the Chameleon skin COPY _sources/patches/core-local-settings-generator.patch /tmp/core-local-settings-generator.patch diff --git a/_sources/configs/composer.canasta.json b/_sources/configs/composer.canasta.json index 74d58983..913f5858 100644 --- a/_sources/configs/composer.canasta.json +++ b/_sources/configs/composer.canasta.json @@ -7,9 +7,11 @@ "include": [ "/mediawiki/config/composer.local.json", "extensions/AbuseFilter/composer.json", + "extensions/BootstrapComponents/composer.json", "extensions/CirrusSearch/composer.json", "extensions/DataTransfer/composer.json", "extensions/Elastica/composer.json", + "extensions/Maps/composer.json", "extensions/OATHAuth/composer.json", "extensions/TimedMediaHandler/composer.json", "extensions/AntiSpoof/composer.json", @@ -17,7 +19,11 @@ "extensions/Widgets/composer.json", "extensions/GoogleAnalyticsMetrics/composer.json", "extensions/OpenIDConnect/composer.json", - "extensions/WSOAuth/composer.json" + "extensions/SemanticBreadcrumbLinks/composer.json", + "extensions/SemanticMediaWiki/composer.json", + "extensions/SemanticResultFormats/composer.json", + "extensions/WSOAuth/composer.json", + "skins/Chameleon/composer.json" ] } } diff --git a/_sources/patches/semantic-breadcrumb-links-composer-reqs.patch b/_sources/patches/semantic-breadcrumb-links-composer-reqs.patch new file mode 100644 index 00000000..2f728db3 --- /dev/null +++ b/_sources/patches/semantic-breadcrumb-links-composer-reqs.patch @@ -0,0 +1,12 @@ +diff --git a/composer.json b/composer.json +index 91a21be..04c8270 100644 +--- a/composer.json ++++ b/composer.json +@@ -28,7 +28,6 @@ + "require": { + "php": ">=5.6", + "composer/installers": "1.*,>=1.0.12", +- "mediawiki/semantic-media-wiki": "~2.5|~3.0|~4.0", + "onoi/shared-resources":"~0.2" + }, + "require-dev": { diff --git a/_sources/patches/semantic-compound-queries-autoload.patch b/_sources/patches/semantic-compound-queries-autoload.patch new file mode 100644 index 00000000..6e14d788 --- /dev/null +++ b/_sources/patches/semantic-compound-queries-autoload.patch @@ -0,0 +1,17 @@ +diff --git a/extension.json b/extension.json +index 11c452d..cad612a 100644 +--- a/extension.json ++++ b/extension.json +@@ -26,6 +26,11 @@ + "ExtensionFunctions": [ + "SemanticCompoundQueries::onExtensionFunction" + ], +- "load_composer_autoloader": true, ++ "AutoloadNamespaces": { ++ "SCQ\\": "src/" ++ }, ++ "AutoloadClasses": { ++ "SemanticCompoundQueries": "SemanticCompoundQueries.php" ++ }, + "manifest_version": 2 + } diff --git a/_sources/patches/semantic-result-formats-composer-reqs.patch b/_sources/patches/semantic-result-formats-composer-reqs.patch new file mode 100644 index 00000000..37d11fc5 --- /dev/null +++ b/_sources/patches/semantic-result-formats-composer-reqs.patch @@ -0,0 +1,10 @@ +--- a/composer.json ++++ b/composer.json +@@ -46,7 +46,6 @@ + "require": { + "php": ">=7.3", + "composer/installers": ">=1.0.1", +- "mediawiki/semantic-media-wiki": "~3.0|~4.0", + "nicmart/tree": "^0.2.7", + "data-values/geo": "~4.0|~3.0|~2.0" + }, diff --git a/_sources/patches/semantic-scribunto-autoload.patch b/_sources/patches/semantic-scribunto-autoload.patch new file mode 100644 index 00000000..14360dd7 --- /dev/null +++ b/_sources/patches/semantic-scribunto-autoload.patch @@ -0,0 +1,17 @@ +diff --git a/extension.json b/extension.json +index 27f39c2..092b8dc 100644 +--- a/extension.json ++++ b/extension.json +@@ -26,6 +26,11 @@ + "ExtensionFunctions": [ + "SemanticScribunto::onExtensionFunction" + ], +- "load_composer_autoloader":true, ++ "AutoloadNamespaces": { ++ "SMW\\Scribunto\\": "src/" ++ }, ++ "AutoloadClasses": { ++ "SemanticScribunto": "SemanticScribunto.php" ++ }, + "manifest_version": 2 + }