95 lines
2.6 KiB
Bash
95 lines
2.6 KiB
Bash
# Copyright 1999-2012 Gentoo Foundation
|
|
# Distributed under the terms of the GNU General Public License v2
|
|
# $Header: $
|
|
|
|
EAPI="2"
|
|
|
|
inherit eutils multilib cvs
|
|
|
|
DESCRIPTION="An open source remote desktop protocol(rdp) server."
|
|
HOMEPAGE="http://xrdp.sourceforge.net/"
|
|
SRC_URI=""
|
|
|
|
LICENSE="GPL-2"
|
|
SLOT="0"
|
|
KEYWORDS=""
|
|
IUSE=""
|
|
|
|
DEPEND="sys-libs/pam"
|
|
RDEPEND="${DEPEND}
|
|
|| ( x11-misc/x11vnc net-misc/vnc[server] net-misc/tightvnc )"
|
|
|
|
DESTDIR="/usr/$(get_libdir)/${PN}"
|
|
|
|
src_unpack() {
|
|
ECVS_SERVER="xrdp.cvs.sourceforge.net:/cvsroot/xrdp"
|
|
ECVS_USER="anonymous"
|
|
ECVS_PASS=""
|
|
ECVS_AUTH="pserver"
|
|
ECVS_MODULE="xrdp"
|
|
ECVS_LOCALNAME="xrdp"
|
|
|
|
S="${WORKDIR}/${ECVS_LOCALNAME}"
|
|
|
|
cvs_src_unpack
|
|
cd "${S}"
|
|
|
|
# fix makefile problem in sesrun
|
|
epatch "${FILESDIR}/xrdp-9999-002-sesrun-config.patch"
|
|
|
|
# fix sandbox security violation issues
|
|
epatch "${FILESDIR}/xrdp-9999-001-sandbox-violation.patch"
|
|
|
|
# domain as module name non-auto fix, and hidden modules patch
|
|
epatch "${FILESDIR}/xrdp-9999-003-domain-as-module-name-noauto-fix-and-hidden-option.patch"
|
|
|
|
# ignore client auth when module has preset
|
|
# No longer required as it has been merged into CVS HEAD
|
|
# xrdp/xrdp/xrdp_wm.c r1.63, Thu May 28 21:01:01 2009 UTC
|
|
#epatch "${FILESDIR}/xrdp-9999-004-ignore-client-auth-on-preset.patch"
|
|
|
|
autoreconf -fvi
|
|
|
|
# fix cflags, broken paths, multilib, and insecure rpath in all makefiles
|
|
for MAKE in $(find . -name Makefile) ; do
|
|
sed -i "s:CFLAGS = -Wall -O. :CFLAGS += :
|
|
s:/usr/xrdp:${DESTDIR}:g
|
|
s:/usr/lib/:/usr/$(get_libdir)/:g
|
|
s:rpath,\.:rpath,${DESTDIR}:g" ${MAKE}
|
|
done
|
|
|
|
#sed -i '/instfiles\/xrdp_control1.sh/ d' Makefile
|
|
}
|
|
|
|
src_configure() {
|
|
econf --localstatedir=/var || die "econf failed"
|
|
}
|
|
|
|
src_compile() {
|
|
emake -j1 DESTDIR="${DESTDIR}" || die "emake failed"
|
|
}
|
|
|
|
src_install() {
|
|
emake -j1 DESTDIR="${D}" install || die "emake install failed"
|
|
emake -j1 -C sesman/tools DESTDIR="${D}" install || die "emake install failed"
|
|
emake -j1 -C sesman/libscp DESTDIR="${D}" install || die "emake install failed"
|
|
dodoc design.txt readme.txt sesman/startwm.sh
|
|
doman "${D}/usr/share/man/"*/*
|
|
keepdir /var/log/${PN}
|
|
rm -f "${D}/etc/xrdp/xrdp.sh" "${D}/etc/init.d/xrdp.sh"
|
|
cp "${FILESDIR}/startwm.sh" "${D}/etc/xrdp/"
|
|
cp -f "${FILESDIR}/xrdp.ini" "${D}/etc/xrdp/"
|
|
chmod 755 "${D}/etc/xrdp/startwm.sh"
|
|
newinitd "${FILESDIR}/${PN}-initd-cvs" ${PN}
|
|
newconfd "${FILESDIR}/${PN}-confd-cvs" ${PN}
|
|
sed -i "s:LIBDIR:$(get_libdir):" "${D}/etc/init.d/${PN}"
|
|
}
|
|
|
|
pkg_postinst() {
|
|
# generate a new rsa key if needed
|
|
if [ ! -e "/etc/xrdp/rsakeys.ini" ] ; then
|
|
elog "Generating xrdp keys..."
|
|
xrdp-keygen xrdp /etc/xrdp/rsakeys.ini
|
|
fi
|
|
}
|