# $Id$ PNAME="nx" PVER="3.5.0.32" PBUILD="r5" BASE_PVER="${PVER%.*}" # nxcompsh and nxssh are only required for freenx, x2go doesn't need them SPLIT_PACKAGES="nxcomp nxcompsh nxcompshad nxcompext nxlibs nxauth nxagent nxproxy nxsensor nxssh nxuexec x2goagent nx" PCAT="net-misc" HOMEPAGE="http://www.nomachine.com/" COMMON_DEPEND=">= x11-libs/libXdamage-1.1 >= x11-libs/libXext-1.3 >= x11-libs/libXfixes-5 >= x11-libs/libXi-1.7 >= x11-libs/libXrandr-1.5 >= x11-libs/libXrender-0.9 >= x11-libs/libXtst-1.2 >= x11-libs/libfontenc-1.1" STD_DEPEND=">= sys-libs/libstdc++-6.3" MEDIA_DEPEND=">= virtual/libjpeg >= media-libs/libpng-1.5 >= sys-libs/zlib-1.2" X11_DEPEND=">= x11-libs/libX11-1.6" NX_DEPEND="${COMMON_DEPEND}" NXCOMP_DEPEND="${STD_DEPEND} ${MEDIA_DEPEND}" NXCOMPSH_DEPEND="${STD_DEPEND}" NXCOMPSHAD_DEPEND="${X11_DEPEND} ${COMMON_DEPEND}" NXCOMPEXT_DEPEND="${STD_DEPEND} ${MEDIA_DEPEND} ${X11_DEPEND}" NXAGENT_DEPEND="${X11_DEPEND} ${COMMON_DEPEND} >= media-libs/freetype-2.6 >= x11-libs/libXcomposite-0.4 >= x11-libs/libXpm-3.5 >= x11-misc/xkeyboard-config-2.20" NXAUTH_DEPEND=">= virtual/glibc" NXPROXY_DEPEND="${STD_DEPEND}" NXSENSOR_DEPEND=">= dev-libs/glib2-2.52" NXSSH_DEPEND=">= dev-libs/openssl-1.0.2k ${MEDIA_DEPEND}" NXUEXEC_DEPEND=">= virtual/glibc" SDEPEND="${NX_DEPEND} ${NXCOMP_DEPEND} ${NXCOMPSH_DEPEND} ${NXCOMPSHAD_DEPEND} ${NXCOMPEXT_DEPEND} ${NXAGENT_DEPEND} ${NXAUTH_DEPEND} ${NXPROXY_DEPEND} ${NXSENSOR_DEPEND} ${NXSSH_DEPEND} ${NXUEXEC_DEPEND} >= x11-misc/gccmakedep-1 >= x11-misc/imake-1 >= x11-protos/xproto-7" NXX11_PVER="${BASE_PVER}.32" NXCOMPSH_PVER="${BASE_PVER}-1" NXSENSOR_PVER="${BASE_PVER}-1" NXSSH_PVER="${BASE_PVER}-2" NXUEXEC_PVER="${BASE_PVER}-3" SRCDIR="${BUILDDIR}/nx-libs-${NXX11_PVER}" NXX11_SRCDIR="${SRCDIR}/nx-X11" NXAUTH_SRCDIR="${SRCDIR}/nxauth" NXCOMP_SRCDIR="${SRCDIR}/nxcomp" NXCOMPSH_SRCDIR="${BUILDDIR}/nxcompsh" NXCOMPEXT_SRCDIR="${SRCDIR}/nxcompext" NXCOMPSHAD_SRCDIR="${SRCDIR}/nxcompshad" NXPROXY_SRCDIR="${SRCDIR}/nxproxy" NXSENSOR_SRCDIR="${BUILDDIR}/nxsensor-${NXSENSOR_PVER}" NXSSH_SRCDIR="${BUILDDIR}/nxssh" NXUEXEC_SRCDIR="${BUILDDIR}/nxuexec" NXWRAPPER_PVER="" NXWRAPPER_SRCFILE="nxwrapper2.in" NXWRAPPER_SRCDIR="${BUILDDIR}/nxwrapper" sminclude mtools SRC_URI=( http://code.x2go.org/releases/source/nx-libs/nx-libs-${NXX11_PVER}-full.tar.gz mirror://${PNAME}/nx-libs/nx-libs-${NXX11_PVER}-full.tar.gz mirror://${PNAME}/nxcompsh-${NXCOMPSH_PVER}.tar.gz mirror://${PNAME}/nxsensor-${NXSENSOR_PVER}.tar.gz mirror://${PNAME}/nxssh-${NXSSH_PVER}.tar.gz mirror://${PNAME}/nxuexec-${NXUEXEC_PVER}.tar.gz mirror://${PNAME}/${NXWRAPPER_SRCFILE} mirror://${PNAME}/nxcompsh-3.4.0-gcc43.patch ) UP2DATE="updatecmd http://code.x2go.org/releases/source/nx-libs/ | grep 'nx-libs-.*-full.tar.gz ' | sed 's/.*-\(.*\)-full.tar.gz.*/\1/' | upsort_pipe" split_info_nxcomp() { DESCRIPTION="Nomachine NX compression library." DEPEND="${NXCOMP_DEPEND}" } split_info_nxcompsh() { DESCRIPTION="Nomachine NX compression service library." DEPEND="${NXCOMPSH_DEPEND}" } split_info_nxcompext() { DESCRIPTION="Nomachine NX compression library extensions." DEPEND="${NXCOMPEXT_DEPEND} == net-misc/nxcomp-${PVER} == net-misc/nxlibs-${PVER}" } split_info_nxcompshad() { DESCRIPTION="Nomachine NX compression shadowing library." DEPEND="${NXCOMPSHAD_DEPEND} == net-misc/nxlibs-${PVER}" } split_info_nxlibs() { DESCRIPTION="Nomachine NX X11 libs." DEPEND="${NX_DEPEND}" } split_info_nxauth() { DESCRIPTION="Nomachine NX X11 authorization program." DEPEND="${NXAUTH_DEPEND}" } split_info_nxagent() { DESCRIPTION="Nomachine NX X11 agent server." DEPEND="${NXAGENT_DEPEND} == net-misc/nxlibs-${PVER} == net-misc/nxcomp-${PVER} == net-misc/nxcompext-${PVER} == net-misc/nxcompshad-${PVER}" } split_info_nxproxy() { DESCRIPTION="Nomachine NX X11 forwarding proxy server." DEPEND="${NXPROXY_DEPEND} == net-misc/nxcomp-${PVER}" } split_info_nxsensor() { DESCRIPTION="Nomachine NX Gkrellm monitorin sensor." DEPEND="${NXSENSOR_DEPEND}" } split_info_nxssh() { DESCRIPTION="Nomachine NX Openssh server." DEPEND="${NXSSH_DEPEND} == net-misc/nxcomp-${PVER}" } split_info_nxuexec() { DESCRIPTION="Nomachine NX privileged script executor." DEPEND="${NXUEXEC_DEPEND}" } split_info_x2goagent() { DESCRIPTION="X2Go wrapper around the Nomachine NX X11 agent server." DEPEND="== net-misc/nxagent-${PVER}" } split_info_nx() { DESCRIPTION="Meta package to pull in all Nomachine NX support packages." DEPEND="== net-misc/nxcomp-${PVER} == net-misc/nxcompsh-${PVER} == net-misc/nxcompshad-${PVER} == net-misc/nxcompext-${PVER} == net-misc/nxlibs-${PVER} == net-misc/nxauth-${PVER} == net-misc/nxagent-${PVER} == net-misc/nxproxy-${PVER} == net-misc/nxsensor-${PVER} == net-misc/nxssh-${PVER} == net-misc/nxuexec-${PVER}" PKGTYPE="virtual" } src_prepare() { munpack nx-libs-${NXX11_PVER}-full.tar.gz || die munpack nxcompsh-${NXCOMPSH_PVER}.tar.gz || die munpack nxsensor-${NXSENSOR_PVER}.tar.gz || die munpack nxssh-${NXSSH_PVER}.tar.gz || die munpack nxuexec-${NXUEXEC_PVER}.tar.gz || die # fix some compile issues with gcc >=4.3 cd ${NXCOMPSH_SRCDIR} mpatch nxcompsh-3.4.0-gcc43.patch || die # fix missing includes/libs with x2go nx-libs cd ${NXSSH_SRCDIR} sed -i "s:../nxcomp:${SRCDIR}/nxcomp:g" configure.ac || die mautoreconf || die # fix broken Makefile cd ${NXCOMPSHAD_SRCDIR} sed -i "s:-o root -g root ::" Makefile.in || die # do not compress man pages cd ${SRCDIR} sed -i "s:gzip:#gzip:g" Makefile || die # create all missing configures cd ${NXCOMP_SRCDIR} mautoreconf || die cd ${NXCOMPEXT_SRCDIR} mautoreconf || die cd ${NXCOMPSHAD_SRCDIR} mautoreconf || die cd ${NXPROXY_SRCDIR} mautoreconf || die # copy the wrapper install -d ${NXWRAPPER_SRCDIR} cp ${SOURCEDIR}/${PNAME}/${NXWRAPPER_SRCFILE} ${NXWRAPPER_SRCDIR}/ || die } src_compile() { cd ${SRCDIR} mmake PREFIX=/usr \ LIBDIR=/usr/$(mlibdir) \ NXLIBDIR=/usr/$(mlibdir)/nx \ X2GOLIBDIR=/usr/$(mlibdir)/x2go \ CONFIGURE="./configure --prefix=/usr --libdir=/usr/$(mlibdir) --libexecdir=/usr/$(mlibdir) --includedir=/usr/include" \ || die cd ${NXCOMPSH_SRCDIR} ./configure --prefix=/usr || die "conf nxcompsh" mmake || die "make nxcompsh" cd ${NXSENSOR_SRCDIR} ./configure --prefix=/usr --libdir=/usr/$(mlibdir) --libexecdir=/usr/$(mlibdir) --includedir=/usr/include || die mmake || die cd ${NXSSH_SRCDIR} ./configure --prefix=/usr --libdir=/usr/$(mlibdir) --libexecdir=/usr/$(mlibdir) --includedir=/usr/include || die mmake || die cd ${NXUEXEC_SRCDIR} ./configure --prefix=/usr --libdir=/usr/$(mlibdir) --libexecdir=/usr/$(mlibdir) --includedir=/usr/include || die mmake || die cd ${NXWRAPPER_SRCDIR} sed -e "s:@@NXLIBDIR@@:/usr/$(mlibdir)/nx:g" \ -e "s:@@NXLOCALLIBDIR@@:/usr/local/$(mlibdir)/nx:g" \ ${NXWRAPPER_SRCFILE} > nxwrapper || die } src_install_nxcomp() { cd ${SRCDIR} minstalldir /usr/$(mlibdir) || die mcopy -a ${NXCOMP_SRCDIR}/libXcomp.so\* /usr/$(mlibdir) || die SRCDIR=${NXCOMP_SRCDIR} minstalldocs CHANGELOG COPYING LICENSE README || die minstalldocs doc/README* doc/changelog || die } src_install_nxcompsh() { cd ${SRCDIR} minstalldir /usr/$(mlibdir) || die mcopy -a ${NXCOMPSH_SRCDIR}/libXcompsh.so\* /usr/$(mlibdir) || die SRCDIR=${NXCOMPSH_SRCDIR} minstalldocs CHANGELOG COPYING LICENSE || die } src_install_nxcompext() { cd ${SRCDIR} minstalldir /usr/$(mlibdir) || die mcopy -a ${NXCOMPEXT_SRCDIR}/libXcompext.so\* /usr/$(mlibdir) || die SRCDIR=${NXCOMPEXT_SRCDIR} minstalldocs CHANGELOG COPYING LICENSE README || die minstalldocs doc/README* doc/changelog || die } src_install_nxcompshad() { cd ${SRCDIR} minstalldir /usr/$(mlibdir) || die mcopy -a ${NXCOMPSHAD_SRCDIR}/libXcompshad.so\* /usr/$(mlibdir) || die SRCDIR=${NXCOMPSHAD_SRCDIR} minstalldocs CHANGELOG COPYING LICENSE || die minstalldocs doc/README* doc/changelog || die } src_install_nxlibs() { cd ${SRCDIR} # copy all libNX_ libraries minstalldir /usr/$(mlibdir) || die mcopy -a ${NXX11_SRCDIR}/lib/\*/libNX_\*.so\* /usr/$(mlibdir) || die # fix Xinerama support using real libX11 and libXext not the one provided by nx-X11 minstalldir /usr/$(mlibdir)/nx/X11/Xinerama || die mlink /usr/$(mlibdir)/libX11.so.6 /usr/$(mlibdir)/nx/X11/Xinerama/libNX_X11.so.6 || die mlink /usr/$(mlibdir)/libXext.so.6 /usr/$(mlibdir)/nx/X11/Xinerama/libNX_Xext.so.6 || die SRCDIR=${NXX11_SRCDIR} minstalldocs CHANGELOG COPYING LICENSE || die minstalldocs doc/README* doc/changelog || die } src_install_nxauth() { cd ${SRCDIR} minstalldir /usr/bin || die minstallexec ${NXWRAPPER_SRCDIR}/nxwrapper /usr/bin/nxauth || die minstalldir /usr/$(mlibdir)/nx/bin || die minstallexec ${NXX11_SRCDIR}/programs/nxauth/nxauth /usr/$(mlibdir)/nx/bin || die cp ${NXX11_SRCDIR}/programs/nxauth/nxauth.{man,1} || die minstallman ${NXX11_SRCDIR}/programs/nxauth/nxauth.1 || die SRCDIR=${NXX11_SRCDIR} minstalldocs CHANGELOG COPYING LICENSE || die minstalldocs doc/README* doc/changelog || die } src_install_nxagent() { cd ${SRCDIR} minstalldir /usr/bin || die minstallexec ${NXWRAPPER_SRCDIR}/nxwrapper /usr/bin/nxagent || die minstalldir /usr/$(mlibdir)/nx/bin || die minstallexec ${NXX11_SRCDIR}/programs/Xserver/nxagent /usr/$(mlibdir)/nx/bin || die minstallman ${NXX11_SRCDIR}/programs/Xserver/hw/nxagent/man/nxagent.1 || die minstallpixmap ${NXX11_SRCDIR}/programs/Xserver/hw/nxagent/nxagent.xpm || die minstalldir /usr/share/nx || die minstallfile ${NXX11_SRCDIR}/programs/Xserver/Xext/SecurityPolicy /usr/share/nx || die minstalldir /etc/nxagent || die minstallfile etc/keystrokes.cfg /etc/nxagent/ || die minstallfile etc/nxagent.keyboard /etc/nxagent/ || die minstallfile etc/rgb /etc/nxagent/ || die mlink /etc/nxagent/rgb /usr/share/nx/rgb || die # fake file required for nxagent to find the keymap directory memptyfile /usr/share/X11/xkb/keymap.dir || die SRCDIR=${NXX11_SRCDIR} minstalldocs CHANGELOG COPYING LICENSE || die minstalldocs doc/README* doc/changelog || die } src_install_nxproxy() { cd ${SRCDIR} minstalldir /usr/bin || die minstallexec ${NXWRAPPER_SRCDIR}/nxwrapper /usr/bin/nxproxy || die minstalldir /usr/$(mlibdir)/nx/bin || die minstallexec ${NXPROXY_SRCDIR}/nxproxy /usr/$(mlibdir)/nx/bin || die minstallman ${NXPROXY_SRCDIR}/man/nxproxy.1 || die SRCDIR=${NXPROXY_SRCDIR} minstalldocs CHANGELOG COPYING LICENSE README || die minstalldocs doc/README* doc/changelog || die } src_install_nxssh() { cd ${SRCDIR} minstalldir /usr/bin || die minstallexec ${NXWRAPPER_SRCDIR}/nxwrapper /usr/bin/nxssh || die minstalldir /usr/$(mlibdir)/nx/bin || die minstallexec ${NXSSH_SRCDIR}/nxssh /usr/$(mlibdir)/nx/bin || die SRCDIR=${NXSSH_SRCDIR} minstalldocs CHANGELOG LICENSE README || die } src_install_nxsensor() { cd ${SRCDIR} minstalldir /usr/bin || die minstallexec ${NXWRAPPER_SRCDIR}/nxwrapper /usr/bin/nxsensor || die minstalldir /usr/$(mlibdir)/nx || die minstallexec ${NXSENSOR_SRCDIR}/nxsensor /usr/$(mlibdir)/nx/bin || die SRCDIR=${NXSENSOR_SRCDIR} minstalldocs CHANGELOG LICENSE README || die } src_install_nxuexec() { cd ${SRCDIR} minstalldir /usr/bin || die minstallexec ${NXWRAPPER_SRCDIR}/nxwrapper /usr/bin/nxuexec || die minstalldir /usr/$(mlibdir)/nx/bin || die minstallexec ${NXUEXEC_SRCDIR}/nxuexec /usr/$(mlibdir)/nx/bin || die SRCDIR=${NXUEXEC_SRCDIR} minstalldocs CHANGELOG COPYING LICENSE || die } src_install_x2goagent() { cd ${SRCDIR} minstalldir /usr/bin || die minstallexec ${NXWRAPPER_SRCDIR}/nxwrapper /usr/bin/x2goagent || die minstalldir /usr/$(mlibdir)/nx/bin || die mlink nxagent /usr/$(mlibdir)/nx/bin/x2goagent || die minstallman ${NXX11_SRCDIR}/programs/Xserver/hw/nxagent/man/x2goagent.1 || die minstallpixmap ${NXX11_SRCDIR}/programs/Xserver/hw/nxagent/x2go.xpm || die minstalldir /usr/share/x2go/versions || die minstallfile VERSION.x2goagent /usr/share/x2go/versions/ || die minstalldir /etc/x2go || die minstallfile etc/keystrokes.cfg /etc/x2go/ || die minstallfile etc/x2goagent.keyboard /etc/x2go/ || die minstallfile etc/rgb /etc/x2go/ || die mlink /etc/x2go/rgb /usr/share/x2go/rgb || die SRCDIR=${NXX11_SRCDIR} minstalldocs CHANGELOG COPYING LICENSE || die minstalldocs doc/README* doc/changelog || die }