# $Id$ PNAME="vnc" PVER="4.1.3" PBUILD="r1" PCATEGORIE="net-misc" STATE="unstable" DESCRIPTION="RealVNC vnc server and client utilities." HOMEPAGE="http://www.realvnc.com/" sminclude xorg xdg DEPEND=">= x11-libs/libSM-1 >= x11-libs/libXtst-1 >= x11-libs/libXi-1 >= x11-libs/libXmu-1 >= x11-libs/libXrender-1 >= sys-libs/zlib-1.2.3 >= media-libs/freetype-2.3.9" SDEPEND=">= dev-util/desktop-file-utils-0.15 >= x11-proto/xextproto-7" SRCFILE="${PNAME}-$(echo ${PVER} | sed "s:\.:_:g")-unixsrc.tar.gz" SRCDIR="${BUILDDIR}/${PNAME}-$(echo ${PVER} | sed "s:\.:_:g")-unixsrc" XORG_PVER="1.6.1" XORG="xorg-server-${XORG_PVER}.tar.bz2" XORGSDIR="${BUILDDIR}/xorg-server-${XORG_PVER}" XORGDDIR="${SRCDIR}/unix/xorg-x11-server-source" sminclude mtools xdg SRC_URI=( mirror://${PNAME}/${SRCFILE} http://ftp.x.org/pub/individual/xserver/${XORG} mirror://xorg-server/${XORG} mirror://${PNAME}/vnc-48x48.png mirror://${PNAME}/vnc-cookie.patch mirror://${PNAME}/vnc-gcc4.patch mirror://${PNAME}/vnc-gcc4.3.patch mirror://${PNAME}/vnc-via.patch mirror://${PNAME}/vnc-idle.patch mirror://${PNAME}/vnc-fPIC.patch mirror://${PNAME}/vnc-restart.patch mirror://${PNAME}/vnc-use-fb.patch mirror://${PNAME}/vnc-xclients.patch mirror://${PNAME}/vnc-render-2.patch mirror://${PNAME}/vnc-nohttpd.patch mirror://${PNAME}/vnc-vncpasswd.patch mirror://${PNAME}/vnc-server-modular-xorg-2.patch mirror://${PNAME}/vnc-server-xorg-3.patch mirror://${PNAME}/vnc-server-xorg-1.6.patch mirror://${PNAME}/vnc-viewer-reparent.patch mirror://${PNAME}/vnc-64bit.patch mirror://${PNAME}/vnc-select.patch mirror://${PNAME}/vnc-newfbsize.patch mirror://${PNAME}/vnc-gnome-mouse-locale.patch mirror://${PNAME}/vnc-ipv6-2.patch mirror://${PNAME}/vnc-password-stdin.patch mirror://${PNAME}/vnc-config.patch mirror://${PNAME}/vnc-render.patch mirror://${PNAME}/vnc-autotools-2.patch mirror://${PNAME}/vnc-autotools-compile.patch mirror://${PNAME}/vnc-server-always-use-fb-2.patch mirror://${PNAME}/vnc-vsnprintf.patch mirror://${PNAME}/vnc-manminor.patch mirror://${PNAME}/vnc-scrollbars.patch mirror://${PNAME}/vnc-24bit.patch mirror://${PNAME}/vnc-clipboard.patch mirror://${PNAME}/vnc-server-allocate.patch mirror://${PNAME}/vnc-server-bounds.patch mirror://${PNAME}/vnc-server-includes.patch mirror://${PNAME}/vnc-server-mieq.patch mirror://${PNAME}/vnc-server-noxkb.patch mirror://${PNAME}/vnc-server-paint.patch mirror://${PNAME}/vnc-server-privates.patch mirror://${PNAME}/vnc-server-selections.patch mirror://${PNAME}/vnc-server-libtool-2.2.patch mirror://${PNAME}/Makefile.am ) src_prepare() { munpack ${SRCFILE} || die munpack ${XORG} || die mv ${XORGSDIR} ${XORGDDIR} || die cd ${SRCDIR} # client patches mpatch vnc-cookie.patch || die mpatch vnc-gcc4.patch || die mpatch vnc-gcc4.3.patch || die mpatch vnc-via.patch || die mpatch vnc-idle.patch || die mpatch vnc-fPIC.patch || die mpatch vnc-restart.patch || die mpatch vnc-viewer-reparent.patch || die mpatch vnc-newfbsize.patch || die mpatch vnc-gnome-mouse-locale.patch || die # must use -Np1 here, patch create new files mpatch -Np1 vnc-autotools-2.patch || die mpatch vnc-ipv6-2.patch || die mpatch vnc-password-stdin.patch || die mpatch vnc-vsnprintf.patch || die mpatch vnc-manminor.patch || die mpatch vnc-scrollbars.patch || die # x11 module and server patches mpatch vnc-use-fb.patch || die mpatch vnc-xclients.patch || die mpatch vnc-render-2.patch || die mpatch vnc-64bit.patch || die mpatch vnc-select.patch || die mpatch vnc-config.patch || die mpatch vnc-autotools-compile.patch || die mpatch vnc-clipboard.patch || die # adds -nohttpd option to vncserver mpatch vnc-nohttpd.patch || die # fix crashes mpatch vnc-vncpasswd.patch || die # patches for the server module to xvnc.cc, before we copy it mpatch vnc-server-modular-xorg-2.patch || die mpatch vnc-server-always-use-fb-2.patch || die mpatch vnc-24bit.patch || die # needed files for xorg cd ${SRCDIR}/unix install -d ${XORGDDIR}/hw/vnc || die # copy missing makefile cp ${SOURCEDIR}/${PNAME}/Makefile.am ${XORGDDIR}/hw/vnc || die cp -a xc/programs/Xserver/vnc/Xvnc/xvnc.cc ${XORGDDIR}/hw/vnc || die cp -a xc/programs/Xserver/Xvnc.man ${XORGDDIR}/hw/vnc || die cp -a xc/programs/Xserver/vnc/*.{h,cc} ${XORGDDIR}/hw/vnc || die # patches for xorg-src cd ${XORGDDIR} mpatch vnc-server-xorg-3.patch || die mpatch vnc-server-xorg-1.6.patch || die cd ${SRCDIR} mpatch vnc-server-allocate.patch || die mpatch vnc-server-bounds.patch || die mpatch vnc-server-mieq.patch || die mpatch vnc-server-noxkb.patch || die mpatch vnc-server-paint.patch || die cd ${XORGDDIR}/hw/vnc mpatch vnc-server-privates.patch || die cd ${SRCDIR} mpatch vnc-server-selections.patch || die mpatch vnc-server-includes.patch || die mpatch vnc-server-libtool-2.2.patch || die cd ${XORGDDIR} # this fixes errors like: # hw/dmx/doc/Makefile.am:24: BUILD_LINUXDOC does not appear in AM_CONDITIONAL # hw/dmx/doc/Makefile.am:27: BUILD_PDFDOC does not appear in AM_CONDITIONAL # !!remove this one with the next xorg-server dump!! echo 'AM_CONDITIONAL([BUILD_PDFDOC], [ test x = y ])' >> configure.ac || die echo 'AM_CONDITIONAL([BUILD_LINUXDOC], [ test x = y ])' >> configure.ac || die autoreconf --verbose --install --force || die # vnc-use-fb.patch patches the configure.in cd ${SRCDIR}/unix autoreconf --verbose --install --force || die cd ${SRCDIR}/common autoreconf --verbose --install --force || die } src_compile() { cd ${SRCDIR}/common mconfigure || die mmake || die cd ${SRCDIR}/unix mconfigure || die mmake || die # fixed build issues export CFLAGS="${CFLAGS} -I/usr/include/drm" export CXXFLAGS="${CXXFLAGS} -I/usr/include/drm" # 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-rgb-path=/usr/share/X11/rgb.txt \ --with-xkb-output=/usr/share/X11/xkb \ --with-pic \ --disable-xorg \ --disable-composite \ --enable-xtrap \ --enable-xcsecurity \ --enable-glx \ --disable-xnest \ --disable-xvfb \ --disable-dmx \ --disable-xwin \ --disable-xephyr \ --disable-kdrive \ --disable-xorgcfg \ --disable-xprint \ --disable-static \ --disable-xevie \ --disable-dri \ --disable-dri2 \ --disable-config-dbus \ --disable-config-hal \ --enable-install-libxf86config \ || die mmake || die } src_install() { cd ${SRCDIR}/common make DESTDIR=${BINDIR} install || die cd ${SRCDIR}/unix make DESTDIR=${BINDIR} install || die # install server binaries minstallexec vncserver || die # install server module and binaries cd ${XORGDDIR}/hw/vnc make DESTDIR=${BINDIR} install || die # not needed rm ${BINDIR}/usr/$(mlibdir)/xorg/modules/extensions/libvnc.la || die rm ${BINDIR}/usr/$(mlibdir)/librfb.{a,la,so} || die # install man pages mv ${SRCDIR}/unix/vncviewer/vncviewer.{man,1} || die mv ${SRCDIR}/unix/vncpasswd/vncpasswd.{man,1} || die mv ${SRCDIR}/unix/vncconfig/vncconfig.{man,1} || die mv ${SRCDIR}/unix/vncserver.{man,1} || die mv ${SRCDIR}/unix/x0vncserver/x0vncserver.{man,1} || die mv ${XORGDDIR}/hw/vnc/Xvnc.{man,1} || die minstallman ${SRCDIR}/unix/vncviewer/vncviewer.1 || die minstallman ${SRCDIR}/unix/vncpasswd/vncpasswd.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 # desktop icon minstallpixmap vnc-48x48.png vncviewer.png || die minstall_desktop_icon \ --name "VNC Viewer" \ --file "vncviewer" \ --comment "VNC client application" \ --exec /usr/bin/vncviewer \ --icon vncviewer.png \ --categories "Utility,Network" \ || die # docs cd ${SRCDIR} minstalldocs README LICENCE.TXT || die } postinstall() { 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 }