# $Id$ PNAME="tigervnc" PVER="1.1.0" PBUILD="r1" PCATEGORIE="net-misc" DESCRIPTION="TigerVNC is a suite of VNC servers and clients that have a focus on performance and remote display functionality." HOMEPAGE="http://www.tigervnc.com/" SRCFILE="${PNAME}-${PVER}.tar.gz" SRCDIR="${BUILDDIR}/${PNAME}-${PVER}" XORG_PVER="1.11.2" XORG="xorg-server-${XORG_PVER}.tar.bz2" XORGSDIR="${BUILDDIR}/xorg-server-${XORG_PVER}" XORGDDIR="${SRCDIR}/unix/xserver" COMMON_DEPEND=">= x11-libs/libX11-1.4 >= x11-libs/libXext-1.3 >= x11-libs/libSM-1.2 >= x11-libs/libXtst-1.2 >= x11-libs/libXi-1.4 >= sys-libs/zlib-1.2.5 >= app-crypt/gnutls-2.8" COMMON_FONTS_DEPEND=">= media-fonts/font-adobe-100dpi-1 >= media-fonts/font-adobe-75dpi-1 >= media-fonts/font-alias-1 >= media-fonts/font-cursor-misc-1 >= media-fonts/font-misc-misc-1" SERVER_DEPEND=">= x11-libs/libXfont-1.4.0 >= x11-libs/libxkbfile-1.0.7 >= x11-libs/pixman-0.24 >= media-libs/freetype-2.4 >= x11-apps/xauth-1.0.6 >= x11-apps/xsetroot-1.1 >= x11-misc/xkeyboard-config-2.4 >= sys-fs/udev-171" MODULE_DEPEND="== x11-base/xorg-server-${XORG_PVER}" APPLET_DEPEND=">= virtual/java" SDEPEND="${COMMON_DEPEND} ${COMMON_FONTS_DEPEND} ${SERVER_DEPEND} ${MODULE_DEPEND} ${APPLET_DEPEND} >= dev-util/desktop-file-utils-0.15 >= dev-lang/nasm-2 >= x11-proto/xextproto-7.2 >= x11-proto/inputproto-2 >= x11-proto/bigreqsproto-1.1 >= x11-proto/compositeproto-0.4 >= x11-proto/damageproto-1.2 >= x11-proto/dri2proto-2.3 >= x11-proto/fixesproto-5 >= x11-proto/fontsproto-2.1 >= x11-proto/randrproto-1.3 >= x11-proto/resourceproto-1.2 >= x11-proto/scrnsaverproto-1.2 >= x11-proto/videoproto-2.3 >= x11-proto/xcmiscproto-1.2 >= x11-proto/xineramaproto-1.2 >= x11-proto/xf86bigfontproto-1.2 >= x11-proto/xf86dgaproto-2.1 >= x11-proto/xf86driproto-2.1 >= x11-proto/xf86miscproto-0.9.3 >= x11-proto/xf86vidmodeproto-2.3 >= x11-proto/glproto-1.4.12 >= x11-proto/renderproto-0.11 >= x11-libs/libpciaccess-0.12 >= virtual/java-jdk" sminclude xorg xdg mtools cleanutils SPLIT_PACKAGES="tigervnc-common tigervnc-server tigervnc-xserver-module tigervnc-server-applet tigervnc" SRC_URI=( sourceforge://${PNAME}/${SRCFILE} mirror://${PNAME}/${SRCFILE} http://ftp.x.org/pub/individual/xserver/${XORG} mirror://xorg-server/${XORG} mirror://${PNAME}/tigervnc_48.png mirror://${PNAME}/${PNAME}-1.0.90-102434.patch mirror://${PNAME}/${PNAME}-1.0.90-cookie.patch mirror://${PNAME}/${PNAME}-0.0.90-viewer-reparent.patch mirror://${PNAME}/${PNAME}-1.0.90-ldnow.patch mirror://${PNAME}/${PNAME}-${PVER}-gethomedir.patch mirror://${PNAME}/${PNAME}-${PVER}-rh692048.patch mirror://${PNAME}/${PNAME}-${PVER}-xserver110.patch mirror://${PNAME}/${PNAME}-${PVER}-xserver111.patch ) UP2DATE="updatecmd_sourceforge ${PNAME}" split_info_tigervnc-common() { DESCRIPTION="Common TigerVNC libs and utils." DEPEND="${COMMON_DEPEND}" } split_info_tigervnc-server() { DESCRIPTION="TigerVNC VNC server." DEPEND="== net-misc/tigervnc-common-${PVER} ${COMMON_DEPEND} ${COMMON_FONTS_DEPEND} ${SERVER_DEPEND}" } split_info_tigervnc-xserver-module() { DESCRIPTION="TigerVNC Xorg server module." DEPEND="== net-misc/tigervnc-common-${PVER} ${COMMON_FONTS_DEPEND} ${MODULE_DEPEND}" } split_info_tigervnc-server-applet() { DESCRIPTION="TigerVNC VNC server." DEPEND="${APPLET_DEPEND}" } split_info_tigervnc() { DESCRIPTION="TigerVNC is a suite of VNC servers and clients that have a focus on performance and remote display functionality." DEPEND="== net-misc/tigervnc-common-${PVER} == net-misc/tigervnc-server-${PVER} == net-misc/tigervnc-xserver-module-${PVER} == net-misc/tigervnc-server-applet-${PVER}" PKGTYPE="virtual" NOPKGBUILD="true" # drop everything we don't need in the meta package: INHERITS="" SPECIAL_VARS="" SPECIAL_FUNCTIONS="" SDEPEND="" PROVIDE="" unset -f preinstall unset -f postinstall unset -f preremove unset -f postremove } src_prepare() { munpack ${SRCFILE} || die munpack ${XORG} || die cp -r ${XORGSDIR}/* ${XORGDDIR} || die cd ${SRCDIR} # patchwork # force vncviewer to read password from stdin mpatch ${PNAME}-1.0.90-102434.patch || die # create X server cookie via mcookie mpatch ${PNAME}-1.0.90-cookie.patch || die # add reparent support for x window mpatch ${PNAME}-0.0.90-viewer-reparent.patch || die # link libvnc.so "now" to catch "undefined symbol" errors during Xorg startup mpatch ${PNAME}-1.0.90-ldnow.patch || die mpatch ${PNAME}-${PVER}-gethomedir.patch || die mpatch ${PNAME}-${PVER}-rh692048.patch || die cd ${XORGDDIR} mpatch ${PNAME}-${PVER}-xserver110.patch || die cd ${SRCDIR} mpatch ${PNAME}-${PVER}-xserver111.patch || die # applied above # # apply the included xorg patch # cd ${XORGDDIR} # local xorg_patch_ver="${XORG_PVER%.*}" # xorg_patch_ver="${xorg_patch_ver//.}" # patch -Np1 -i ../xserver${xorg_patch_ver}.patch || die # reconfigure everything cd ${XORGDDIR} libtoolize --copy --force || die autoreconf --verbose --install --force || die cd ${SRCDIR} libtoolize --copy --force || die autoreconf --verbose --install --force || die } src_compile() { cd ${SRCDIR} mconfigure --disable-static || die mmake || die # fix build issues export CFLAGS="$(pkg-config --cflags libdrm)" # build the x11 module cd ${XORGDDIR} mconfigure \ --with-default-font-path=/usr/share/fonts/misc,/usr/share/fonts/75dpi,/usr/share/fonts/100dpi,/usr/share/fonts/TTF,/usr/share/fonts/Type1 \ --with-fontdir=/usr/share/fonts \ --with-rgb-path=/usr/share/X11/rgb.txt \ --with-xkb-output=/usr/share/X11/xkb \ --with-module-dir=/usr/$(mlibdir)/xorg/modules \ --with-dri-driver-path=/usr/$(mlibdir)/dri \ --with-pic \ --without-dtrace \ --disable-xorg \ --disable-composite \ --enable-xtrap \ --enable-glx \ --disable-xnest \ --disable-xvfb \ --disable-dmx \ --disable-xwin \ --disable-xephyr \ --disable-kdrive \ --disable-xorgcfg \ --disable-xprint \ --disable-static \ --disable-xevie \ --disable-dri \ --enable-dri2 \ --disable-config-dbus \ --disable-config-hal \ --disable-config-udev \ --enable-install-libxf86config \ --disable-unit-tests \ || die mmake || die # build icons cd ${SRCDIR}/media mmake -j1 || die # build the java applet cd ${SRCDIR}/java/src/com/tigervnc/vncviewer mmake -j1 || die } src_install_tigervnc-common() { cd ${SRCDIR} mmake DESTDIR=${BINDIR} install || die # cleanup zapmost ${BINDIR} usr/bin/vncpasswd usr/bin/vncviewer usr/share/locale || die # install man pages cp ${SRCDIR}/unix/vncviewer/vncviewer.{man,1} || die cp ${SRCDIR}/unix/vncpasswd/vncpasswd.{man,1} || die minstallman ${SRCDIR}/unix/vncviewer/vncviewer.1 || die minstallman ${SRCDIR}/unix/vncpasswd/vncpasswd.1 || die # desktop icon minstallpixmap media/icons/tigervnc_48.png vncviewer.png || die minstall_desktop_icon \ --name "TigerVNC Viewer" \ --file "vncviewer" \ --comment "Connect to VNC server and display remote desktop" \ --exec /usr/bin/vncviewer \ --icon vncviewer.png \ --categories "Application,Network" \ || die # docs minstalldocs README LICENCE.TXT || die } src_install_tigervnc-server() { cd ${SRCDIR} mmake DESTDIR=${BINDIR} install || die # install server module and binaries cd ${XORGDDIR}/hw/vnc mmake DESTDIR=${BINDIR} install || die # cleanup rm ${BINDIR}/usr/bin/vncpasswd || die rm ${BINDIR}/usr/bin/vncviewer || die rm -r ${BINDIR}/usr/share/man || die rm -r ${BINDIR}/usr/$(mlibdir) || die # install man pages cp ${SRCDIR}/unix/vncconfig/vncconfig.{man,1} || die cp ${SRCDIR}/unix/vncserver.{man,1} || die cp ${SRCDIR}/unix/x0vncserver/x0vncserver.{man,1} || die cp ${XORGDDIR}/hw/vnc/Xvnc.{man,1} || die minstallman ${SRCDIR}/unix/vncconfig/vncconfig.1 || die minstallman ${SRCDIR}/unix/vncserver.1 || die minstallman ${SRCDIR}/unix/x0vncserver/x0vncserver.1 || die minstallman ${XORGDDIR}/hw/vnc/Xvnc.1 || die } src_install_tigervnc-xserver-module() { # install server module and binaries cd ${XORGDDIR}/hw/vnc mmake DESTDIR=${BINDIR} install || die # cleanup zapmost ${BINDIR} usr/$(mlibdir) || die # not needed rm ${BINDIR}/usr/$(mlibdir)/xorg/modules/extensions/libvnc.la || die } src_install_tigervnc-server-applet() { cd ${SRCDIR}/java/src/com/tigervnc/vncviewer minstalldir ${BINDIR}/usr/share/vnc/classes || die minstallexec VncViewer.jar ${BINDIR}/usr/share/vnc/classes || die minstallfile index.vnc ${BINDIR}/usr/share/vnc/classes || die } postinstall_tigervnc-xserver-module() { echo echo 'Add following to /etc/X11/xorg.conf for native X display support:' echo ' Section "Module"' echo ' ...' echo ' Load "vnc"' echo ' EndSection' echo echo 'To enable VNC password authentification use the vncpasswd program:' echo ' 'vncpasswd'' echo echo 'You will also need to tell the VNC module where the password is stored:' echo ' Section "Screen"' echo ' ...' echo ' Option "SecurityTypes" "VncAuth"' echo ' Option "UserPasswdVerifier" "VncAuth"' echo ' Option "PasswordFile" "/root/.vnc/passwd"' echo ' EndSection' echo }