summaryrefslogtreecommitdiff
blob: 6c88ab71ae39f8850a27d0242e64ce3bdbaee255 (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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
# Copyright 1999-2009 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/www-apps/mediawiki/mediawiki-1.14.0.ebuild,v 1.1 2009/04/07 15:42:20 pva Exp $

EAPI="1"
inherit webapp depend.php versionator eutils

MY_BRANCH=$(get_version_component_range 1-2)

DESCRIPTION="The MediaWiki wiki web application (as used on wikipedia.org)"
HOMEPAGE="http://www.mediawiki.org"
SRC_URI="http://download.wikimedia.org/mediawiki/${MY_BRANCH}/${P}.tar.gz"

LICENSE="GPL-2"
KEYWORDS="~alpha ~amd64 ~ppc ~sparc ~x86"
IUSE="imagemagick math mysql postgres +ocamlopt"

DEPEND="math? ( >=dev-lang/ocaml-3.0.6 )"
RDEPEND="${DEPEND}
	math? (
		app-text/dvipng
		virtual/tex-base
		virtual/ghostscript
		media-gfx/imagemagick
	)
	imagemagick? ( media-gfx/imagemagick )"

RESTRICT="test"

need_httpd_cgi
need_php_httpd

pkg_setup() {
	webapp_pkg_setup
	local flags="pcre session xml"
	use mysql && flags="${flags} mysql"
	use postgres && flags="${flags} postgres"
	if ! PHPCHECKNODIE="yes" require_php_with_use ${flags} || \
		! PHPCHECKNODIE="yes" require_php_with_any_use gd gd-external ; then
			die "Re-install ${PHP_PKG} with ${flags} and either gd or gd-external"
	fi

	# see Bug 204812
	if use ocamlopt && use math && ! built_with_use --missing true dev-lang/ocaml ocamlopt; then
		eerror "In order to build ${PN} with native code support from ocaml"
		eerror "You first need to have a native code ocaml compiler."
		eerror "You need to install dev-lang/ocaml with ocamlopt useflag on."
		die "Please install ocaml with ocamlopt useflag"
	fi
}

src_compile() {
	if use math; then
		einfo "Compiling math support"
		cd math || die
		if ! use ocamlopt; then
			sed -e "s/ocamlopt/ocamlc/" \
				-e "s/cmxa/cma/" \
				-e "s/cmx/cmo/g" -i Makefile || die
		fi
		emake || die
	else
		einfo "No math support enabled. Skipping."
	fi

	# TODO: 1. think about includes/zhtable/ support
	# 2. generate docs (?): echo '0' | php mwdocgen.php
}

src_install() {
	webapp_src_preinst

	# First we install math, docs and then copy everything left into htdocs dir
	# to avoid bugs like #236411.

	# If we've enabled math USE-flag, install math support.
	# We ensure the directories are prepared for writing.  The post-
	# install instructions guide the user to enable the feature.
	if use math; then
		einfo "Installing math support"
		exeinto "${MY_HTDOCSDIR}"/math
		doexe math/texvc || die "Failed to create math support executable."

		docinto math
		dodoc math/{README,TODO}
		docinto ""

		# Working directories.  Server writeable.
		dodir "${MY_HTDOCSDIR}"/images/math
		webapp_serverowned "${MY_HTDOCSDIR}"/images/math
		dodir "${MY_HTDOCSDIR}"/images/tmp
		webapp_serverowned "${MY_HTDOCSDIR}"/images/tmp
	fi

	local DOCS="FAQ HISTORY INSTALL README RELEASE-NOTES UPGRADE"
	dodoc ${DOCS} docs/*.txt
	docinto php-memcached
	dodoc docs/php-memcached/*

	# Clean everything not used at the site...
	rm -rf ${DOCS} COPYING tests math t docs
	find . -name Makefile -delete
	# and install
	insinto "${MY_HTDOCSDIR}"
	doins -r .

	# If imagemagick is enabled then setup for image upload.
	# We ensure the directory is prepared for writing.
	if use imagemagick; then
		webapp_serverowned "${MY_HTDOCSDIR}"/images
	fi

	webapp_postinst_txt en "${FILESDIR}/postinstall-1.13-en.txt"
	webapp_postupgrade_txt en "${FILESDIR}/postupgrade-1.13-en.txt"
	webapp_src_install
}

pkg_preinst() {
	prev_instal="false"
	if has_version ${CATEGORY}/${PN}; then
		prev_instal="true"
	fi
}

pkg_postinst() {
	webapp_pkg_postinst
	if ${prev_instal}; then
		einfo
		elog "=== Consult the release notes ==="
		elog "Before doing anything, stop and consult the release notes"
		elog "/usr/share/doc/${PF}/RELEASE-NOTES.bz2"
		elog
		elog "These detail bug fixes, new features and functionality, and any"
		elog "particular points that may need to be noted during the upgrade procedure."
		einfo
		ewarn "Back up existing files and the database before upgrade."
		ewarn "http://www.mediawiki.org/wiki/Manual:Backing_up_a_wiki"
		ewarn "provides an overview of the backup process."
		einfo
	fi
}