Files
sablink-distro/app-editors/kompozer/kompozer-0.8_beta3.ebuild
T
2010-10-07 12:43:20 +00:00

271 lines
7.1 KiB
Bash

# Copyright 1999-2010 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
EAPI="2"
WANT_AUTOCONF="2.1"
inherit eutils toolchain-funcs mozconfig-3 autotools flag-o-matic fdo-mime multilib mozextension java-pkg-opt-2
DESCRIPTION="A web authoring system combining web file management and WYSIWYG editing"
HOMEPAGE="http://kompozer.net/"
LANGS="en-US ca de eo es-ES fi fr hsb hu it ja nl pl pt-PT ru zh-CN zh-TW"
# manque sur serveur : cs sl
NOSHORTLANGS="es-ES pt-PT xh-CN zh-TW"
DICTS="ca cs de dsb en-GB en-US eo es-ES fi fr hsb hu it nl pl pt-BR pt-PT ru uk"
NOSHORTDICTS="en-GB en-US es-ES pt-BR pt-PT"
MY_P="${P/_beta3/b3}"
MY_D="myspell-dict"
# Recommended using ${PN}??
SRC_URI="http://downloads.sourceforge.net/kompozer/${MY_P}-src.tar.bz2"
REL_URI="http://kompozer.sourceforge.net/l10n/langpacks/kompozer-0.8b3"
DICT_URI="http://kompozer.sourceforge.net/l10n/myspell"
RESTRICT="nomirror"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~ia64 ~mips ~ppc ~sparc ~x86"
IUSE="gnome java ldap"
# linguas
for X in ${LANGS} ; do
if [ "${X}" != "en" ] && [ "${X}" != "en-US" ]; then
SRC_URI="${SRC_URI}
linguas_${X/-/_}? ( ${REL_URI}/${MY_P}.${X}.xpi -> ${MY_P}-${X}.xpi )"
fi
IUSE="${IUSE} linguas_${X/-/_}"
# english is handled internally
if [ "${#X}" == 5 ] && ! has ${X} ${NOSHORTLANGS}; then
if [ "${X}" != "en-US" ]; then
SRC_URI="${SRC_URI}
linguas_${X%%-*}? ( ${REL_URI}/${MY_P}.${X}.xpi -> ${MY_P}-${X}.xpi )"
fi
IUSE="${IUSE} linguas_${X%%-*}"
fi
done
# myspell dictionaries
for X in ${DICTS} ; do
SRC_URI="${SRC_URI}
linguas_${X/-/_}? ( ${DICT_URI}/${MY_D}.${X}.xpi -> ${MY_D}-${X}.xpi )"
IUSE="${IUSE} linguas_${X/-/_}"
if [ "${#X}" == 5 ] && ! has ${X} ${NOSHORTDICTS}; then
SRC_URI="${SRC_URI}
linguas_${X%%-*}? ( ${DICT_URI}/${MY_D}.${X}.xpi -> ${MY_D}-${X}.xpi )"
IUSE="${IUSE} linguas_${X%%-*}"
fi
done
RDEPEND="java? ( virtual/jre )
>=sys-devel/binutils-2.16.1
>=dev-libs/nss-3.12.2
>=dev-libs/nspr-4.8
>=app-text/hunspell-1.2
>=x11-libs/gtk+-2.10.0
>=x11-libs/cairo-1.8.8[X]
>=x11-libs/pango-1.14.0[X]"
DEPEND="${RDEPEND}
dev-util/pkgconfig
sys-apps/gawk
dev-lang/perl
app-doc/doxygen
app-arch/unzip
x11-misc/makedepend
>=media-libs/freetype-2.1.9-r1
java? ( >=virtual/jdk-1.4 )"
S=${WORKDIR}/mozilla
linguas() {
local LANG SLANG
for LANG in ${LINGUAS}; do
if has ${LANG} en en_US; then
has en ${linguas} || linguas="${linguas:+"${linguas} "}en"
continue
elif has ${LANG} ${LANGS//-/_}; then
has ${LANG//_/-} ${linguas} || linguas="${linguas:+"${linguas} "}${LANG//_/-}"
continue
elif [[ " ${LANGS} " == *" ${LANG}-"* ]]; then
for X in ${LANGS}; do
if [[ "${X}" == "${LANG}-"* ]] && \
[[ " ${NOSHORTLANGS} " != *" ${X} "* ]]; then
has ${X} ${linguas} || linguas="${linguas:+"${linguas} "}${X}"
continue 2
fi
done
fi
ewarn "Sorry, but ${PN} does not support the ${LANG} LINGUA"
done
}
dicts() {
local LANG SLANG
for LANG in ${LINGUAS}; do
if has ${LANG} ${DICTS//-/_}; then
has ${LANG//_/-} ${dicts} || dicts="${dicts:+"${dicts} "}${LANG//_/-}"
continue
elif [[ " ${DICTS} " == *" ${LANG}-"* ]]; then
for X in ${DICTS}; do
if [[ "${X}" == "${LANG}-"* ]] && \
[[ " ${NOSHORTDICTS} " != *" ${X} "* ]]; then
has ${X} ${dicts} || dicts="${dicts:+"${dicts} "}${X}"
continue 2
fi
done
fi
ewarn "Sorry, but ${PN} does not support the ${LANG} dictionary"
done
}
src_unpack() {
unpack ${A}
linguas
for X in ${linguas}; do
# FIXME: Add support for unpacking xpis to portage
[[ ${X} != "en" ]] && xpi_unpack "${MY_P}-${X}.xpi"
done
if [[ ${linguas} != "" && ${linguas} != "en" ]]; then
einfo "Selected language packs (first will be default): ${linguas}"
fi
dicts
for X in ${dicts}; do
# FIXME: Add support for unpacking xpis to portage
xpi_unpack "${MY_D}-${X}.xpi"
done
}
pkg_setup() {
export BUILD_OFFICIAL=1
export MOZILLA_OFFICIAL=1
java-pkg-opt-2_pkg_setup
append-ldflags $(no-as-needed)
}
src_prepare() {
java-pkg-opt-2_src_prepare
eautoreconf
}
src_configure() {
declare MOZILLA_FIVE_HOME="/usr/$(get_libdir)/${PN}"
MEXTENSIONS=""
####################################
#
# mozconfig, CFLAGS and CXXFLAGS setup
#
####################################
mozconfig_init
mozconfig_config
# It doesn't compile on alpha without this LDFLAGS
use alpha && append-ldflags "-Wl,--no-relax"
MEXTENSIONS="default,spellcheck,webdav"
if ! use gnome ; then
MEXTENSIONS="${MEXTENSIONS},-gnomevfs"
else MEXTENSIONS="${MEXTENSIONS},gnomevfs"
fi
mozconfig_annotate '' --enable-extensions="${MEXTENSIONS}"
mozconfig_annotate '' --enable-application=composer
mozconfig_annotate '' --enable-default-toolkit=gtk2
mozconfig_annotate '' --enable-system-myspell
mozconfig_annotate '' --enable-jsd
mozconfig_annotate '' --enable-xterm-updates
mozconfig_annotate '' --enable-pango
mozconfig_annotate '' --enable-image-encoder=all
mozconfig_annotate '' --enable-canvas
mozconfig_annotate '' --with-system-nspr
mozconfig_annotate '' --with-system-nss
mozconfig_annotate '' --enable-oji --enable-mathml
mozconfig_annotate 'places' --enable-storage --enable-places
mozconfig_annotate '' --disable-installer
mozconfig_annotate '' --with-default-mozilla-five-home=${MOZILLA_FIVE_HOME}
# Enable/Disable based on USE flags
mozconfig_use_enable java javaxpcom
mozconfig_use_enable ldap
mozconfig_use_enable ldap ldap-experimental
# Finalize and report settings
mozconfig_final
if [[ $(gcc-major-version) -lt 4 ]]; then
append-cxxflags -fno-stack-protector
fi
####################################
#
# Configure and build
#
####################################
# Work around breakage in makeopts with --no-print-directory
MAKEOPTS="${MAKEOPTS/--no-print-directory/}"
CC="$(tc-getCC)" CXX="$(tc-getCXX)" LD="$(tc-getLD)" econf
}
src_compile() {
# Should the build use multiprocessing? Not enabled by default, as it tends to break.
[ "${WANT_MP}" = "true" ] && jobs=${MAKEOPTS} || jobs="-j1"
emake ${jobs} || die
}
src_install() {
declare MOZILLA_FIVE_HOME="/usr/$(get_libdir)/${PN}"
declare emid
#Dirty Bugfix by unregistr3d (ignore nsModules.o):
cd xpfe/components/
cp Makefile.in Makefile.in_backup
cat Makefile.in_backup | grep -v build2 > Makefile.in
cd ../..
emake DESTDIR="${D}" install || die "emake install failed"
linguas
elog "The following language packs will be installed: ${linguas}"
for X in ${linguas}; do
[[ ${X} != "en" ]] && xpi_install "${WORKDIR}"/"${MY_P}-${X}"
done
dicts
elog "The following dictionaries will be installed: ${dicts}"
for X in ${dicts}; do
xpi_dict_install "${WORKDIR}"/"${MY_D}-${X}"
done
# Install icon and .desktop for menu entry
newicon "${S}"/composer/app/mozicon256.png kompozer.png
domenu "${FILESDIR}"/kompozer.desktop
}
pkg_postinst() {
declare MOZILLA_FIVE_HOME="/usr/$(get_libdir)/${PN}"
# Update mimedb for the new .desktop file
fdo-mime_desktop_database_update
elog "This package has a very dirty bugfix!!! If you want to fill"
elog "a Bugreport to the mainstream developers, at least be sure"
elog "to refer to http://bugs.gentoo.org/show_bug.cgi?id=146761#c39 "
elog "Thanks"
}