224 lines
6 KiB
Bash
224 lines
6 KiB
Bash
# Copyright 1999-2009 Gentoo Foundation
|
|
# Distributed under the terms of the GNU General Public License v2
|
|
# $Header: /var/cvsroot/gentoo-x86/dev-db/ingres/ingres-9.3.0.151.ebuild,v 1.2 2009/10/05 03:15:54 mr_bones_ Exp $
|
|
|
|
EAPI="2"
|
|
|
|
inherit eutils flag-o-matic versionator
|
|
|
|
# amd64 doesn't work yet
|
|
KEYWORDS="~x86"
|
|
SLOT="0"
|
|
|
|
# Several Ingres instances can be installed with different
|
|
# installation identifiers - default is II
|
|
# This is not the same as slotting because we have
|
|
# n installations of the same version which is not supported
|
|
# by portage (e.g. portage doesn't know which one to unmerge)
|
|
II_INSTALLATION=${II_INSTALLATION:-"II"}
|
|
|
|
# Getting the version strings from the package name
|
|
VERSION=$(get_version_component_range 1-3)
|
|
SHORT_VERSION=$(get_version_component_range 1-2)
|
|
BUILD=$(get_version_component_range 4)
|
|
|
|
DESCRIPTION="Ingres Relational Database Management System"
|
|
HOMEPAGE="http://www.ingres.com/"
|
|
SRC_DIR="ingres-${VERSION}-${BUILD}-gpl-src"
|
|
SRC_TGZ="${SRC_DIR}.tgz"
|
|
DOWNLOAD_URL="http://dev.gentooexperimental.org/~dreeevil/ingres/ingres-${VERSION}-${BUILD}-gpl-src.tgz"
|
|
SRC_URI="${DOWNLOAD_URL}/${SRC_TGZ}"
|
|
S="${WORKDIR}/${SRC_DIR}"
|
|
LICENSE="GPL-2"
|
|
|
|
# nodbms means client installation
|
|
IUSE="nodbms net das odbc demodb"
|
|
|
|
RDEPEND="dev-libs/xerces-c
|
|
app-arch/pax"
|
|
|
|
DEPEND="${RDEPEND}
|
|
app-crypt/mit-krb5
|
|
dev-util/ftjam"
|
|
|
|
PG_DIR="/var/lib/ingres"
|
|
|
|
pkg_setup() {
|
|
if use nodbms && use demodb; then
|
|
eerror "Cannot install demodb without the dbms"
|
|
die "Invalid USE flags"
|
|
fi
|
|
if use nodbms && ! use net && ! use das; then
|
|
eerror "No servers or clients to install"
|
|
die "Invalid USE flags"
|
|
fi
|
|
|
|
if [ -d "${PG_DIR}/Ingres${II_INSTALLATION}" ]; then
|
|
einfo "Existing installation found in ${PG_DIR}/Ingres${II_INSTALLATION}."
|
|
einfo "This installation will be upgraded."
|
|
einfo "If that is not what you want press CTRL-C now!"
|
|
epause 5
|
|
fi
|
|
|
|
if ps ax | grep -qe "iigc[n|c|d] ${II_INSTALLATION}"; then
|
|
ewarn ""
|
|
ewarn "Running instance of Ingres ${II_INSTALLATION} found!"
|
|
ewarn "Ingres will be compiled and merged but not configured"
|
|
ewarn "when another copy of the same instance is running."
|
|
ewarn "You can do that afterwards with "
|
|
ewarn "USE=\"...\" emerge --config ingres"
|
|
epause 5
|
|
fi
|
|
|
|
enewgroup ingres
|
|
enewuser ingres -1 /bin/bash ${PG_DIR} ingres
|
|
}
|
|
|
|
src_prepare() {
|
|
epatch "${FILESDIR}/${SHORT_VERSION}-bldenv.patch"
|
|
epatch "${FILESDIR}/${SHORT_VERSION}-sharelib.patch"
|
|
epatch "${FILESDIR}/${SHORT_VERSION}-Jamdefs.patch"
|
|
epatch "${FILESDIR}/sql.patch"
|
|
}
|
|
|
|
src_compile() {
|
|
export ING_ROOT="${S}"
|
|
|
|
local paxlocation=`which pax`
|
|
export PAXLOC=`dirname ${paxlocation}`
|
|
|
|
source src/tools/port/jam/bldenv || die "Setting of environment failed"
|
|
|
|
cd tools/port/jam
|
|
jam || die "Building of mkjams failed"
|
|
mkjams || die "Creation of jam files failed"
|
|
|
|
cd "$ING_SRC"
|
|
|
|
grep -vE "gtk|rpm|deb|packman|pixmap" front/st/Jamfile > front/st/_Jamfile
|
|
mv front/st/_Jamfile front/st/Jamfile
|
|
|
|
einfo "Compiling Ingres..."
|
|
|
|
jam -q || die "Building Ingres failed"
|
|
|
|
}
|
|
|
|
src_install() {
|
|
|
|
einfo "Creating II_SYSTEM..."
|
|
|
|
II_SYSTEM="${D}${PG_DIR}/Ingres${II_INSTALLATION}"
|
|
|
|
II_LOC="${II_SYSTEM}/ingres"
|
|
|
|
mkdir -p "${II_LOC}"
|
|
|
|
DIRS="abf bin ckp data demo dmp files ice jnl lib log sig utility work vdba version.rel"
|
|
|
|
for DIR in ${DIRS}; do
|
|
echo -n "${DIR} "
|
|
cp -rpLf "${S}/build/${DIR}" "${II_LOC}/" || die "Copying ${DIR} failed"
|
|
done
|
|
echo
|
|
chown -R ingres:ingres "${II_LOC}"
|
|
|
|
cat - > ${II_SYSTEM}/.ing${II_INSTALLATION}bash << EOF
|
|
export II_SYSTEM=${PG_DIR}/Ingres${II_INSTALLATION}
|
|
export PATH=\$II_SYSTEM/ingres/bin:\$II_SYSTEM/ingres/utility:\$PATH
|
|
if [ "\$LD_LIBRARY_PATH" ] ; then
|
|
LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:/usr/local/lib:\$II_SYSTEM/ingres/lib
|
|
else
|
|
LD_LIBRARY_PATH=/lib:/usr/lib:/usr/local/lib:\$II_SYSTEM/ingres/lib
|
|
fi
|
|
export LD_LIBRARY_PATH
|
|
export TERM=vt100
|
|
export TERM_INGRES=vt100fx
|
|
EOF
|
|
|
|
newinitd "${FILESDIR}/ingres-initd" ingres${II_INSTALLATION} || die "Adding init.d script failed"
|
|
|
|
einfo "done."
|
|
}
|
|
|
|
pkg_config() {
|
|
|
|
export II_SYSTEM="${PG_DIR}/Ingres${II_INSTALLATION}"
|
|
|
|
ERRMSG="Installing Ingres failed
|
|
You may find information in ${II_SYSTEM}/ingres/files/install.log.
|
|
You can retry by executing USE=\"...\" emerge --config ingres"
|
|
|
|
if ps ax | grep -qe "iigc[n|c|d] ${II_INSTALLATION}"; then
|
|
eerror "Running instance of Ingres ${II_INSTALLATION} found!"
|
|
eerror "Please stop that instance first, before upgrading."
|
|
die "${ERRMSG}"
|
|
fi
|
|
|
|
einfo "Fixing file permissions..."
|
|
chmod u+s "${II_SYSTEM}/ingres/bin/verifydb"
|
|
chmod u+s "${II_SYSTEM}/ingres/bin/ingvalidpw"
|
|
chmod u+s "${II_SYSTEM}/ingres/bin/iimerge"
|
|
chmod u+s "${II_SYSTEM}/ingres/utility/csreport"
|
|
|
|
einfo "Setting up Ingres (please wait - this will take a few minutes)"
|
|
|
|
PARTS="tm"
|
|
|
|
if ! use nodbms; then
|
|
PARTS="${PARTS} dbms"
|
|
fi
|
|
for FLAG in net das odbc demodb; do
|
|
if use ${FLAG}; then
|
|
PARTS="${PARTS} ${FLAG}"
|
|
fi
|
|
done
|
|
|
|
for PART in ${PARTS}; do
|
|
einfo "${PART}..."
|
|
if [ ${PART} == "demodb" ]; then
|
|
su ingres -c "
|
|
. ${II_SYSTEM}/.ing${II_INSTALLATION}bash
|
|
cd ${II_SYSTEM}/ingres/demo/data
|
|
ingstart > /dev/null
|
|
if createdb -n demodb > /dev/null; then
|
|
sql demodb < copy.in > /dev/null
|
|
fi" || die "${ERRMSG}"
|
|
else
|
|
su ingres -c "
|
|
. ${II_SYSTEM}/.ing${II_INSTALLATION}bash
|
|
export II_INSTALLATION=${II_INSTALLATION}
|
|
${II_SYSTEM}/ingres/utility/iisu${PART} -batch" || die "${ERRMSG}"
|
|
fi
|
|
done
|
|
|
|
einfo "Upgrading any existing databases"
|
|
|
|
su ingres -c "
|
|
. ${II_SYSTEM}/.ing${II_INSTALLATION}bash
|
|
ingstart > /dev/null 2>&1
|
|
upgradedb -all > /dev/null
|
|
ingstop > /dev/null" || die "${ERRMSG}"
|
|
|
|
su ingres -c "
|
|
. ${II_SYSTEM}/.ing${II_INSTALLATION}bash
|
|
ingsetenv ING_ABFDIR ${II_SYSTEM}/ingres/abf" || die "${ERRMSG}"
|
|
|
|
"${II_SYSTEM}/ingres/bin/mkvalidpw" > /dev/null || die "${ERRMSG}"
|
|
|
|
einfo "Done."
|
|
|
|
}
|
|
|
|
pkg_postinst() {
|
|
|
|
pkg_config
|
|
|
|
elog ""
|
|
elog "Run '/etc/init.d/ingres${II_INSTALLATION} start' to start Ingres"
|
|
elog ""
|
|
elog "After that, as user ingres type"
|
|
elog " source ${PG_DIR}/Ingres${II_INSTALLATION}/.ing${II_INSTALLATION}bash"
|
|
elog "to run the Ingres commands such as sql or createdb."
|
|
|
|
}
|