summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'net-misc/nxserver-2xterminalserver/nxserver-2xterminalserver-1.5.0.ebuild')
-rw-r--r--net-misc/nxserver-2xterminalserver/nxserver-2xterminalserver-1.5.0.ebuild212
1 files changed, 212 insertions, 0 deletions
diff --git a/net-misc/nxserver-2xterminalserver/nxserver-2xterminalserver-1.5.0.ebuild b/net-misc/nxserver-2xterminalserver/nxserver-2xterminalserver-1.5.0.ebuild
new file mode 100644
index 0000000..febce07
--- /dev/null
+++ b/net-misc/nxserver-2xterminalserver/nxserver-2xterminalserver-1.5.0.ebuild
@@ -0,0 +1,212 @@
+# Copyright 1999-2007 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/net-misc/nxserver-2xterminalserver/nxserver-2xterminalserver-1.5.0.ebuild,v 1.6 2007/07/04 15:08:07 voyageur Exp $
+
+inherit flag-o-matic eutils
+
+DESCRIPTION="GPL NX server, based on NoMachine 1.5 servers source code"
+HOMEPAGE="http://www.2x.com/terminalserver/"
+SRC_URI="http://code.2x.com/release/linuxterminalserver/src/linuxterminalserver-1.5.0-server-r21-src.tar.gz
+ http://code.2x.com/release/linuxterminalserver/src/linuxterminalserver-1.5.0-common-r21-src.tar.gz
+ http://code.2x.com/release/linuxterminalserver/src/linuxterminalserver-1.5.0-client-r21-src.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~x86"
+IUSE="rdesktop vnc"
+
+RDEPEND="dev-libs/glib
+ dev-libs/openssl
+ dev-perl/BSD-Resource
+ dev-perl/DateManip
+ dev-perl/DBD-SQLite
+ dev-perl/DBI
+ dev-perl/Error
+ dev-perl/GDGraph
+ dev-perl/Passwd-Linux
+ dev-perl/Unix-Syslog
+ media-libs/jpeg
+ media-libs/libpng
+ sys-libs/zlib
+ x11-libs/libICE
+ x11-libs/libXmu
+ x11-libs/libXdmcp
+ x11-libs/libSM
+ x11-libs/libXt
+ x11-libs/libXau
+ x11-libs/libXaw
+ x11-libs/libXp
+ x11-libs/libXpm
+ x11-libs/libXext
+
+ media-fonts/font-misc-misc
+ media-fonts/font-cursor-misc
+ x11-apps/xauth"
+
+DEPEND="${RDEPEND}
+ app-text/rman
+ net-misc/nxclient-2xterminalserver
+ x11-misc/gccmakedep
+ x11-misc/imake
+ x11-proto/xproto
+ x11-proto/xextproto
+ x11-proto/fontsproto
+ !net-misc/nxserver-freeedition
+ !net-misc/nxserver-freenx"
+
+S="${WORKDIR}"
+
+pkg_preinst() {
+ enewuser nx -1 -1 /usr/NX/home/nx
+}
+
+src_unpack() {
+ unpack ${A}
+
+ cd ${S}
+ epatch ${FILESDIR}/1.5.0/nx-x11-1.5.0-amd64.patch || die
+ epatch ${FILESDIR}/1.5.0/nx-x11-1.5.0-plastik-render-fix.patch || die
+ epatch ${FILESDIR}/1.5.0/nx-x11-1.5.0-tmp-exec.patch || die
+ epatch ${FILESDIR}/1.5.0/nx-x11-1.5.0-xorg7-font-fix.patch || die
+ epatch ${FILESDIR}/1.5.0/nx-x11-1.5.0-windows-linux-resume.patch || die
+
+ epatch ${FILESDIR}/1.5.0/${P}-insitu.patch || die
+ epatch ${FILESDIR}/1.5.0/${P}-external-nxcomp.patch || die
+ epatch ${FILESDIR}/1.5.0/${P}-setup.patch || die
+ epatch ${FILESDIR}/1.5.0/${P}-perl.patch || die
+ epatch ${FILESDIR}/1.5.0/${P}-nxagent-reduced-debugging.patch || die
+ sed -i 's/-Wnested-externs/-Wnested-externs -fPIC/' \
+ common/nxcompext/Makefile.in || die "sed failed"
+
+ # Set correct product name
+ einfo "Setting official product name"
+ find server/nxnode common/nx-X11/programs/Xserver/hw/nxagent/Args.c \
+ -type f -exec sed -i "s/@PRODUCT_NAME@/2X TerminalServer/g" {} \;
+}
+
+src_compile() {
+ cd ${S}/common/nxcompext
+ append-ldflags "-L/usr/NX/lib"
+ econf || die
+ emake || die
+
+ cd ${S}/common/nx-X11
+ emake World || die
+
+ if use rdesktop; then
+ cd ${S}/client/nxdesktop
+ CC=(tc-getCC) ./configure || die
+ emake || die
+ fi
+
+ if use vnc; then
+ cd ${S}/server/nxviewer
+ xmkmf -a || die
+ emake World || die
+ fi
+
+ cd ${S}/server/nxspool/source
+ econf --without-ldap --without-krb5 || die
+ # We can't use emake here - it doesn't trigger the right target
+ # for some reason
+ make || die
+
+ cd ${S}/server/nxsensor
+ emake || die
+
+ cd ${S}/server/nxuexec
+ emake || die
+
+ cd ${S}/server/nxnode/src
+ ./configure || die
+ make setversion
+ make nxnode.pl nxserver.pl || die
+ perl MakeConfigFile.pl DEBIAN > node-gentoo.cfg.sample
+}
+
+src_install() {
+ NODE_SRC=${S}/server/nxnode/src
+
+ # Main binaries
+ into /usr/NX
+ dobin ${S}/common/nx-X11/programs/Xserver/nxagent
+ dobin ${S}/server/nxsensor/nxsensor
+ dobin ${S}/server/nxnode/setup/nxsetup
+ newbin ${S}/server/nxspool/source/bin/smbspool nxspool
+ dobin ${S}/server/nxuexec/nxuexec
+
+ if use rdesktop; then
+ dobin ${S}/client/nxdesktop/nxdesktop
+ fi
+ if use vnc; then
+ dobin ${S}/server/nxviewer/nxviewer/nxviewer
+ dobin ${S}/server/nxviewer/nxpasswd/nxpasswd
+ fi
+
+ # Libraries
+ dodir /usr/NX/lib
+ cp -P ${S}/common/nxcompext/libXcompext.so* \
+ ${S}/common/nx-X11/lib/X11/libX11.so* ${D}/usr/NX/lib || die
+ # And helper scripts
+ exeinto /usr/NX/scripts
+ newexe ${S}/server/nxnode/bin/nxnodeenv.sh nxenv.sh
+ newexe ${S}/server/nxnode/bin/nxnodeenv.csh nxenv.csh
+ exeinto /usr/NX/scripts/restricted
+ doexe ${S}/server/nxnode/bin/nxaddinitd.sh
+ doexe ${S}/server/nxnode/scripts/nxinit.sh
+ newexe ${S}/server/nxnode/bin/nxprinter.sh-LINUX nxprinter.sh
+ doexe ${S}/server/nxnode/bin/nxsessreg.sh
+ doexe ${S}/server/nxnode/bin/nxuseradd.sh
+
+ # The server itself (and wrappers and perl modules)
+ dobin ${NODE_SRC}/nxnode.pl
+ dobin ${NODE_SRC}/nxserver.pl
+ make_wrapper nxnode "perl -I/usr/NX/lib/perl /usr/NX/bin/nxnode.pl" /usr/NX/bin /usr/NX/lib /usr/NX/bin
+ make_wrapper nxserver "perl -I/usr/NX/lib/perl /usr/NX/bin/nxserver.pl" /usr/NX/bin /usr/NX/lib /usr/NX/bin
+
+ dodir /usr/NX/lib/perl
+ cp -RH ${NODE_SRC}/*.pm ${NODE_SRC}/Config ${NODE_SRC}/Exception \
+ ${NODE_SRC}/NXShellDialogs ${NODE_SRC}/handlers ${NODE_SRC}/nxstat \
+ ${D}/usr/NX/lib/perl/ || die
+
+ # etc, var, home, ...
+ dodir /usr/NX/etc/keys
+ for x in passwords users administrators; do
+ cp ${S}/server/nxnode/etc/${x} ${D}/usr/NX/etc/${x}.db.sample
+ done
+ cp ${NODE_SRC}/node-gentoo.cfg.sample ${D}/usr/NX/etc/ || die
+
+ # share/keys/server.id_dsa.key is installed with the client
+ dodir /usr/NX/share/keys
+ for x in config fonts keymaps; do
+ cp -R ${S}/server/nxnode/share/${x} ${D}/usr/NX/share/ || die
+ done
+ cp ${S}/server/nxnode/share/keys/default.id_dsa.key \
+ ${D}/usr/NX/share/keys/ ||die
+ cp -R ${S}/server/nxnode/home ${D}/usr/NX || die
+ keepdir /usr/NX/var/log
+ keepdir /usr/NX/var/run
+ keepdir /usr/NX/var/db/closed
+ keepdir /usr/NX/var/db/failed
+ keepdir /usr/NX/var/db/nxstat
+ keepdir /usr/NX/var/db/running
+}
+
+pkg_postinst() {
+ usermod -s /usr/NX/bin/nxserver nx || die "Unable to set login shell of nx user!!"
+ usermod -d /usr/NX/home/nx nx || die "Unable to set home directory of nx user!!"
+ # Workaround fonts link
+ if has_version '>=x11-base/xorg-x11-7.0' && ! [ -e /usr/lib/X11/fonts ];
+ then
+ ln -s /usr/share/fonts /usr/lib/X11/fonts
+ fi
+
+ # only run install when no configuration file is found
+ if [ -f /usr/NX/etc/node.cfg ]; then
+ einfo "Running 2X update script"
+ ${ROOT}/usr/NX/bin/nxsetup --update
+ else
+ einfo "Running 2X setup script"
+ ${ROOT}/usr/NX/bin/nxsetup --install
+ fi
+}