X-Git-Url: https://iankelling.org/git/?a=blobdiff_plain;f=mw-setup-script;h=754c53664815c9afa579de61af919270c66b06c4;hb=26831bf52ab8a90dc2a3556ec91aa010dd93c530;hp=cae3ca46e47a63f2005fc1f792353dc1bf831174;hpb=1a26b348cefa35e6a0a4d0b28624f67609daf49c;p=mediawiki-setup diff --git a/mw-setup-script b/mw-setup-script index cae3ca4..754c536 100755 --- a/mw-setup-script +++ b/mw-setup-script @@ -1,6 +1,7 @@ #!/bin/bash # Copyright (C) 2016 Ian Kelling # This program is under GPL v. 3 or later, see +set -x # # identify if this is a debian based distro isdeb() { command -v apt &>/dev/null; } @@ -40,7 +41,7 @@ mw-ext () { 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 '#^require_once( "\\\$IP/extensions/\$ext/\$ext\.php" );#d' $mwc + sed -i --follow-symlinks '#^require_once( "\\\$IP/extensions/\$ext/\$ext\.php" );#d' $mwc 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 @@ -178,7 +183,7 @@ git clone $git_site/acme-tiny-wrapper l=$mw/../../logs mkdir -p $l -acme-tiny-wrapper/acme-tiny-wrapper $mwdomain +acme-tiny-wrapper/acme-tiny-wrapper -t $mwdomain git clone $git_site/basic-https-conf { cat </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 \ @@ -286,7 +290,9 @@ 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 [[ -e $mw/extensions/CheckUser/install.php ]]; then + sudo -u $apache_user php $mw/extensions/CheckUser/install.php; sleep 1 +fi # # if isdeb; then @@ -313,8 +319,6 @@ else # todo, php5-curl equivalent on fedora yum -y install texlive-cjk ghostscript ImageMagick texlive ocaml fi -dir=$(dirname $(php -r 'echo(php_ini_loaded_file());'))/../apache2/conf.d -ln -sf ../../mods-available/curl.ini $dir service apache2 restart cd $mw/extensions/Math/math; make # makes texvc @@ -410,7 +414,7 @@ EOF fi # # -sed -i "/\\\$wgGroupPermissions\\['\\*'\\]\\['createaccount'\\] = false;/d" $mwc +sed -i --follow-symlinks "/\\\$wgGroupPermissions\\['\\*'\\]\\['createaccount'\\] = false;/d" $mwc # # # get repo @@ -532,7 +536,8 @@ div#mw-content-text { """) 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 @@ -540,19 +545,22 @@ 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 .. +for dir in extensions/* skins/* $mw; do + [[ -d $dir ]] || continue + 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 + pwd + echo "$log" fi + git checkout -q $new_head + cd $mw done -php $mw/maintenance/update.php -q +php $mw/maintenance/update.php -q --quick EOF -chmod +x $s + #