X-Git-Url: https://git.openstreetmap.org./chef.git/blobdiff_plain/9c3db8b15ab975e975cb31ca8bb388b79f6e5c8e..c9156c712b8e712139466e96fba4a00deb321198:/cookbooks/mediawiki/resources/site.rb diff --git a/cookbooks/mediawiki/resources/site.rb b/cookbooks/mediawiki/resources/site.rb index 4b53c52be..323e33259 100644 --- a/cookbooks/mediawiki/resources/site.rb +++ b/cookbooks/mediawiki/resources/site.rb @@ -1,14 +1,14 @@ # -# Cookbook Name:: mediawiki +# Cookbook:: mediawiki # Resource:: mediawiki_site # -# Copyright 2015, OpenStreetMap Foundation +# Copyright:: 2015, OpenStreetMap Foundation # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, @@ -19,10 +19,10 @@ default_action :create -property :site, :kind_of => String, :name_attribute => true +property :site, :kind_of => String, :name_property => true property :aliases, :kind_of => [String, Array] property :directory, :kind_of => String -property :version, :kind_of => String, :default => "1.29" +property :version, :kind_of => String, :default => "1.33" property :database_name, :kind_of => String, :required => true property :database_user, :kind_of => String, :required => true property :database_password, :kind_of => String, :required => true @@ -38,9 +38,8 @@ property :site_notice, :kind_of => [String, TrueClass, FalseClass], :default => property :site_readonly, :kind_of => [String, TrueClass, FalseClass], :default => false property :admin_user, :kind_of => String, :default => "Admin" property :admin_password, :kind_of => String, :required => true -property :ssl_enabled, :kind_of => [TrueClass, FalseClass], :default => false property :private_accounts, :kind_of => [TrueClass, FalseClass], :default => false -property :private, :kind_of => [TrueClass, FalseClass], :default => false +property :private_site, :kind_of => [TrueClass, FalseClass], :default => false property :recaptcha_public_key, :kind_of => String property :recaptcha_private_key, :kind_of => String property :extra_file_extensions, :kind_of => [String, Array], :default => [] @@ -106,30 +105,38 @@ action :create do mediawiki_reference = "REL#{new_resource.version}".tr(".", "_") - git "#{mediawiki_directory}/vendor" do - action :nothing - repository "https://gerrit.wikimedia.org/r/p/mediawiki/vendor.git" - revision mediawiki_reference - user node[:mediawiki][:user] - group node[:mediawiki][:group] - end - git mediawiki_directory do action :sync repository "https://gerrit.wikimedia.org/r/p/mediawiki/core.git" revision mediawiki_reference + depth 1 user node[:mediawiki][:user] group node[:mediawiki][:group] - notifies :sync, "git[#{mediawiki_directory}/vendor]", :immediately + notifies :run, "execute[#{mediawiki_directory}/composer.json]", :immediately notifies :run, "execute[#{mediawiki_directory}/maintenance/install.php]", :immediately notifies :run, "execute[#{mediawiki_directory}/maintenance/update.php]" end + execute "#{mediawiki_directory}/composer.json" do + action :nothing + command "composer update --no-dev" + cwd mediawiki_directory + user node[:mediawiki][:user] + group node[:mediawiki][:group] + end + + template "#{mediawiki_directory}/composer.local.json" do + cookbook "mediawiki" + source "composer.local.json.erb" + owner node[:mediawiki][:user] + group node[:mediawiki][:group] + mode 0o664 + end + # Safety catch if git doesn't update but install.php hasn't run ruby_block "catch-installer-localsettings-run" do action :run block do - # end not_if do ::File.exist?("#{mediawiki_directory}/LocalSettings-install.php") @@ -189,24 +196,41 @@ action :create do :database_params => database_params end - mediawiki_skin "CologneBlue" do # ~FC005 + # MobileFrontend extension is required by MinervaNeue skin + mediawiki_extension "MobileFrontend" do + site new_resource.site + template "mw-ext-MobileFrontend.inc.php.erb" + end + + # MobileFrontend extension is required by MinervaNeue skin + mediawiki_skin "MinervaNeue" do + site new_resource.site + update_site false + legacy false + end + + mediawiki_skin "CologneBlue" do site new_resource.site update_site false + legacy false end mediawiki_skin "Modern" do site new_resource.site update_site false + legacy false end mediawiki_skin "MonoBook" do site new_resource.site update_site false + legacy false end mediawiki_skin "Vector" do site new_resource.site update_site false + legacy false end mediawiki_extension "Cite" do @@ -219,7 +243,7 @@ action :create do update_site false end - if new_resource.private_accounts || new_resource.private + if new_resource.private_accounts || new_resource.private_site mediawiki_extension "ConfirmEdit" do site new_resource.site update_site false @@ -252,6 +276,7 @@ action :create do mediawiki_extension "Interwiki" do site new_resource.site + template "mw-ext-Interwiki.inc.php.erb" update_site false end @@ -311,36 +336,27 @@ action :create do update_site false end - # MediaWiki Language Extension Bundle - # FIXME: should automatically resolve tag - mw_lang_ext_bundle_tag = "2017.01" - mediawiki_extension "Babel" do site new_resource.site template "mw-ext-Babel.inc.php.erb" - # tag mw_lang_ext_bundle_tag - tag mw_lang_ext_bundle_tag update_site false end mediawiki_extension "cldr" do site new_resource.site template "mw-ext-cldr.inc.php.erb" - tag mw_lang_ext_bundle_tag update_site false end mediawiki_extension "CleanChanges" do site new_resource.site template "mw-ext-CleanChanges.inc.php.erb" - tag mw_lang_ext_bundle_tag update_site false end mediawiki_extension "LocalisationUpdate" do site new_resource.site template "mw-ext-LocalisationUpdate.inc.php.erb" - tag mw_lang_ext_bundle_tag update_site false end @@ -357,13 +373,12 @@ action :create do # mediawiki_extension "Translate" do # site new_resource.site # template "mw-ext-Translate.inc.php.erb" - # tag mw_lang_ext_bundle_tag # update_site false # end mediawiki_extension "UniversalLanguageSelector" do site new_resource.site - tag mw_lang_ext_bundle_tag + template "mw-ext-UniversalLanguageSelector.inc.php.erb" update_site false end @@ -404,7 +419,7 @@ action :create do mediawiki_extension "osmtaginfo" do site new_resource.site template "mw-ext-osmtaginfo.inc.php.erb" - repository "git://github.com/Firefishy/osmtaginfo.git" + repository "https://github.com/Firefishy/osmtaginfo.git" tag "live" update_site false end @@ -412,7 +427,7 @@ action :create do mediawiki_extension "SimpleMap" do site new_resource.site template "mw-ext-SimpleMap.inc.php.erb" - repository "git://github.com/Firefishy/SimpleMap.git" + repository "https://github.com/Firefishy/SimpleMap.git" tag "live" update_site false end @@ -420,7 +435,7 @@ action :create do mediawiki_extension "SlippyMap" do site new_resource.site template "mw-ext-SlippyMap.inc.php.erb" - repository "git://github.com/Firefishy/SlippyMap.git" + repository "https://github.com/Firefishy/SlippyMap.git" tag "live" update_site false end @@ -431,12 +446,6 @@ action :create do action :delete end - mediawiki_extension "MobileFrontend" do - site new_resource.site - template "mw-ext-MobileFrontend.inc.php.erb" - update_site false - end - mediawiki_extension "DisableAccount" do site new_resource.site template "mw-ext-DisableAccount.inc.php.erb" @@ -449,6 +458,11 @@ action :create do update_site false end + mediawiki_extension "TemplateData" do + site new_resource.site + update_site false + end + cookbook_file "#{site_directory}/cc-wiki.png" do cookbook "mediawiki" owner node[:mediawiki][:user] @@ -475,7 +489,6 @@ action :create do ssl_certificate new_resource.site do domains [new_resource.site] + Array(new_resource.aliases) - only_if { new_resource.ssl_enabled } end apache_site new_resource.site do @@ -483,8 +496,7 @@ action :create do template "apache.erb" directory site_directory variables :aliases => Array(new_resource.aliases), - :private => new_resource.private, - :ssl_enabled => new_resource.ssl_enabled + :private_site => new_resource.private_site reload_apache false end @@ -573,10 +585,9 @@ action_class do :skin => new_resource.skin, :site_notice => new_resource.site_notice, :site_readonly => new_resource.site_readonly, - :ssl_enabled => new_resource.ssl_enabled, :extra_file_extensions => new_resource.extra_file_extensions, :private_accounts => new_resource.private_accounts, - :private => new_resource.private + :private_site => new_resource.private_site } end end