X-Git-Url: https://iankelling.org/git/?a=blobdiff_plain;f=mw-setup-script;h=acc327fb5e8ecc925900d508bb5f4c7efeef437b;hb=2631a87ebcd3c7b743d968cf3d1f67fa2b0254db;hp=40b5cfaf952ae30e0799f1e5ec15866b5f61aeef;hpb=588d277988efb692ae76ed500ebd3727db386461;p=mediawiki-setup diff --git a/mw-setup-script b/mw-setup-script index 40b5cfa..acc327f 100755 --- a/mw-setup-script +++ b/mw-setup-script @@ -1,6 +1,10 @@ #!/bin/bash # Copyright (C) 2016 Ian Kelling # This program is under GPL v. 3 or later, see +set -x +# +apt-get install --install-suggests jessie-backports certbot +# # # identify if this is a debian based distro isdeb() { command -v apt &>/dev/null; } @@ -18,7 +22,7 @@ mw-clone() { local url=$1 local original_pwd="$PWD" local name - local re='[^/]*/[^/]*$' + local re='[^/]*/[^/]*$' # last 2 parts of path [[ $url =~ $re ]] ||: target=$mw/${BASH_REMATCH[0]} if [[ ! -e $target/.git ]]; then @@ -36,11 +40,10 @@ mw-clone() { } mw-ext () { local ext - for ext in "$@"; do + for ext; do mw-clone https://gerrit.wikimedia.org/r/p/mediawiki/extensions/$ext - if [[ -e $mw/ext/$ext/extension.json ]]; then - # new style extension. remove old style declaration - sed -i --follow-symlinks '#^require_once( "\\\$IP/extensions/\$ext/\$ext\.php" );#d' $mwc + if [[ -e $mw/extensions/$ext/extension.json ]]; then + # new style extension teeu $mwc </dev/null; then - # in debian wheezy time-frame distros, mediawiki was packaged. - apt-get -y install php-apc mediawiki + # mediawiki is packaged in jessie backports. + DEBIAN_FRONTEND=noninteractive apt-get -y install php5-apcu mediawiki else # https://www.mediawiki.org/wiki/Manual:Installation_requirements if apt-get install -s php7.0 &>/dev/null; then # note, 7.0 is untested by the editor here, since it's not # available in debian 8. it's listed as supported # in the mediawiki page. - # noninteractive to avoid mysql password prompt - DEBIAN_FRONTEND=noninteractive apt-get install -y apache2 mysql-server \ + # noninteractive to avoid mysql password prompt. + DEBIAN_FRONTEND=noninteractive apt-get install -y apache2 \ + default-mysql-server \ php7.0 php7.0-mysql libapache2-mod-php7.0 php7.0-xml \ - php7.0-apcu + php7.0-apcu php7.0-mbstring else - DEBIAN_FRONTEND=noninteractive apt-get install -y apache2 mysql-server \ + # note: mbstring is recommended, but it's not available for php5 in + # debian jessie. + DEBIAN_FRONTEND=noninteractive apt-get install -y apache2 \ + default-mysql-server \ php5 php5-mysql libapache2-mod-php5 php5-apcu fi fi @@ -144,6 +151,8 @@ fi # git branch -r git checkout -f origin/$mw_branch git clean -ffxd +# apply librejs patch +curl "https://iankelling.org/git/?p=mediawiki-librejs-patch;a=blob_plain;f=mediawiki-1.28-librejs.patch;hb=HEAD" | patch -r - -N -p1 # Get the php libraries wmf uses. Based on: # https://www.mediawiki.org/wiki/Download_from_Git#Fetch_external_libraries if [[ ! -e vendor/.git ]]; then @@ -174,14 +183,11 @@ EOF temp=$(mktemp -d) cd $temp git_site=https://iankelling.org/git -git clone $git_site/acme-tiny-wrapper l=$mw/../../logs mkdir -p $l -acme-tiny-wrapper/acme-tiny-wrapper $mwdomain - git clone $git_site/basic-https-conf -{ cat <\n $(< $line)\n"; done -} | basic-https-conf/apache-site -r ${mw%/*} - $mwdomain cd rm -rf $temp # @@ -224,6 +229,7 @@ teeu $mwc< # @@ -236,11 +242,14 @@ $wgArticlePath = "/wiki/$1"; # not using nofollow is good practice, as long as we avoid spam. $wgNoFollowLinks = false; # Allow user customization. -$wgAllowUserJs = true; $wgAllowUserCss = true; - # use imagemagick over GD $wgUseImageMagick = true; +# manual says this is not production ready, I think that is mostly +# because they are using MobileFrontend extension instead, which gives +# an even cleaner more minimal view, I plan to try setting it up +# sometime but this seems like a very nice improvement for now. +$wgVectorResponsive = true; EOF @@ -270,14 +279,14 @@ EOF # Make the toolbox go into the drop down. cd $mw/skins/Vector if ! git remote show ian-kelling &>/dev/null; then - git remote add ian-kelling https://iankelling.org/git/Vector + git remote add ian-kelling https://iankelling.org/git/forks/Vector fi git fetch ian-kelling -git checkout ian-kelling/REL1_27-toolbox-in-dropdown +git checkout ian-kelling/${mw_branch}-toolbox-in-dropdown # # -mw-ext Cite CiteThisPage CSS Echo Gadgets ImageMap Interwiki News \ - Nuke ParserFunctions Poem SyntaxHighlight_GeSHi Variables +mw-ext Cite CiteThisPage CheckUser CSS Echo Gadgets ImageMap Interwiki News \ + Nuke ParserFunctions Poem Renameuser SyntaxHighlight_GeSHi Variables # # mw-ext AntiSpoof @@ -285,10 +294,6 @@ mw-ext AntiSpoof sudo -u $apache_user php $mw/extensions/AntiSpoof/maintenance/batchAntiSpoof.php # # -mw-ext CheckUser -sudo -u $apache_user php $mw/extensions/CheckUser/install.php; sleep 1 -# -# if isdeb; then apt-get -y install php-wikidiff2 teeu $mwc <<'EOF' @@ -505,52 +510,59 @@ x("MediaWiki:Sidebar", """* navigation # remove side panel # helpfull doc: https://www.mediawiki.org/wiki/Manual:Interface/Sidebar x("mediawiki:Common.css", """/* adjust sidebar to just be home link and up top */ +/* adjust sidebar to just be home link and up top */ /* panel width increased to fit full wiki name. */ +/* selectors other than final id are for increasing priority of rule */ div#mw-panel { top: 10px; padding-top: 0em; width: 20em } div#footer, #mw-head-base, div#content { margin-left: 1em; } #left-navigation { margin-left: 1em; } /* logo, and toolbar hidden */ -#p-logo, #p-tb.portal { +#p-logo, div#mw-navigation div#mw-panel #p-tb { display:none; } -/* make the font size smaller for the misc stuff */ -#p-personal { - font-size: 0.8em; -} - -#footer-info { - font-size: 0.8em; -} div#mw-content-text { max-width: 720px; } """) EOF -python pwb.py ${mwfamily}_setup +# this can spam a warning, so uniq it +python pwb.py ${mwfamily}_setup |& uniq # # s=/etc/cron.daily/mediawiki_update dd of=$s<<'EOF' #!/bin/bash source ~/mw_vars -cd $mw -git fetch --all -git checkout origin/$mw_branch -git rebase ian/REL1_23-toolbox-in-dropdown -cd extensions -for x in *; do - if [[ -d $x ]]; then - cd $x - git fetch --all - git checkout origin/$mw_branch || git checkout -qf origin/master - cd .. +update() { + dir=$1 + cd $mw + [[ -d $dir ]] || return 1 + cd $dir + branch=$(git describe --all) + branch=${branch#remotes/} + git fetch --all -q + new_head=$(git rev-parse $branch) + log=$(git log HEAD..$new_head) + if [[ ! $log ]]; then + return 1 fi + pwd + echo "$log" + git checkout -qf $new_head + cd $mw + return 0 +} +for dir in extensions/* skins/* vendor; do + update "$dir" ||: done -php $mw/maintenance/update.php -q +if update .; then + curl "https://iankelling.org/git/?p=mediawiki-librejs-patch;a=blob_plain;f=mediawiki-1.28-librejs.patch;hb=HEAD" | patch -r - -N -p1 +fi +php $mw/maintenance/update.php -q --quick EOF -chmod +x $s + #