summaryrefslogtreecommitdiffstats
path: root/abs/core/php/php.install
blob: 469db4a5f1674e79b3262e0d3e1a7fd3a85d5f78 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
post_install() {
	if [ -f /etc/systemconfig ]
	then
		. /etc/systemconfig
		if [ -f /etc/php/php.ini ]
		then
	       	    sed -i 's/^.*date.timezone.*$/date.timezone='${timezone}'/' /etc/php/php.ini
		fi
	fi
}

pre_upgrade() {
  # we moved php.ini from /etc/ to /etc/php
  # lets save the old file before pacman deletes it.
  # can be removed later
  if [ -f /etc/php.ini ] && [ $(vercmp '5.2.4-2' $2) -ge 0 ];then
    echo 'Backing up old php.ini...'
    mv /etc/php.ini /etc/php.ini.pacsave.tmp
  fi
}

post_upgrade() {
  post_install
  echo '
    ==> Review your php.ini

    Your php installation has been updated. You should review your current
    php.ini and check any upstream changes according to the default
    configuration which can be found at php.ini.pacnew.
    '
  # if we upgraded from an installation with old config layout, move the old
  # php.ini to the right place and inform the user about the changes.
  # can be removed later
  if [ -f /etc/php.ini.pacsave.tmp ] && [ $(vercmp '5.2.4-2' $2) -ge 0 ]; then
    echo 'Restoring old php.ini...'
    mv /etc/php/php.ini /etc/php/php.ini.pacnew
    mv /etc/php.ini.pacsave.tmp /etc/php/php.ini
    if [ -f /etc/systemconfig ]
	then
		. /etc/systemconfig
		if [ -f /etc/php/php.ini ]
		then
	       	    sed -i 's/^.*date.timezone.*$/date.timezone='${timezone}'/' /etc/php/php.ini
		fi
	fi
    echo 'Updating extension dir...'
    sed -i -e 's/#extension_dir = "/usr/lib/php/extensions/php/"/#extension_dir = "/usr/lib/php/20060613/"#g' /etc/php/php.ini
    echo '
    ==> Location of php.ini has changed

    A previous configuration was found at /etc/php.ini. PHP stores its
    configuration at /etc/php/ now. Your old php.ini was moved to
    /etc/php/php.ini. You should merge your old file with the
    default one that can be found at /etc/php/php.ini.pacnew.

    Make sure to enable the modules you need. A lot of them are shared
    objects now and not statically built into php.

    External modules store their configuration in /etc/php/conf.d/. PHP
    scans that directory for any ini files.
    '
  fi
  # be nice to [testing] users and update php.ini to fix bug #8141.
  # can be removed later
  if [ $(vercmp '5.2.4-3' $2) -eq 0 ]; then
    echo 'Updating extension dir...'
    sed -i -e 's/#extension_dir = "/usr/lib/php/extensions/"/#extension_dir = "/usr/lib/php/20060613/"#g' /etc/php/php.ini
  fi
}

op=$1
shift
[ "$(type -t "$op")" = "function" ] && $op "$@"