diff options
author | Raúl Porcel <armin76@gentoo.org> | 2011-11-12 18:05:41 +0000 |
---|---|---|
committer | Raúl Porcel <armin76@gentoo.org> | 2011-11-12 18:05:41 +0000 |
commit | 7b9d9cd66aac22ac371eab5e413b077866314be2 (patch) | |
tree | 562d0d663ffe51e1e3b5ad5e7b907aa2193b4a1b /net-misc/tigervnc | |
parent | Speeling. (diff) | |
download | historical-7b9d9cd66aac22ac371eab5e413b077866314be2.tar.gz historical-7b9d9cd66aac22ac371eab5e413b077866314be2.tar.bz2 historical-7b9d9cd66aac22ac371eab5e413b077866314be2.zip |
Version bump, fixes bug 387729
Package-Manager: portage-2.1.10.30/cvs/Linux ia64
Diffstat (limited to 'net-misc/tigervnc')
-rw-r--r-- | net-misc/tigervnc/ChangeLog | 9 | ||||
-rw-r--r-- | net-misc/tigervnc/Manifest | 13 | ||||
-rw-r--r-- | net-misc/tigervnc/files/xserver111.patch | 240 | ||||
-rw-r--r-- | net-misc/tigervnc/tigervnc-1.1.0-r1.ebuild | 183 | ||||
-rw-r--r-- | net-misc/tigervnc/tigervnc-1.1.0.ebuild | 182 |
5 files changed, 622 insertions, 5 deletions
diff --git a/net-misc/tigervnc/ChangeLog b/net-misc/tigervnc/ChangeLog index 421a18fb98e9..a6a1cc731f77 100644 --- a/net-misc/tigervnc/ChangeLog +++ b/net-misc/tigervnc/ChangeLog @@ -1,6 +1,13 @@ # ChangeLog for net-misc/tigervnc # Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/net-misc/tigervnc/ChangeLog,v 1.111 2011/11/05 18:55:14 armin76 Exp $ +# $Header: /var/cvsroot/gentoo-x86/net-misc/tigervnc/ChangeLog,v 1.112 2011/11/12 18:05:41 armin76 Exp $ + +*tigervnc-1.1.0-r1 (12 Nov 2011) +*tigervnc-1.1.0 (12 Nov 2011) + + 12 Nov 2011; Raúl Porcel <armin76@gentoo.org> +files/xserver111.patch, + +tigervnc-1.1.0.ebuild, +tigervnc-1.1.0-r1.ebuild: + Version bump, fixes bug 387729 05 Nov 2011; Raúl Porcel <armin76@gentoo.org> tigervnc-1.0.1_p20110618-r1.ebuild: diff --git a/net-misc/tigervnc/Manifest b/net-misc/tigervnc/Manifest index 00368ccfb93b..f8e3c00bd2b0 100644 --- a/net-misc/tigervnc/Manifest +++ b/net-misc/tigervnc/Manifest @@ -3,16 +3,21 @@ Hash: SHA1 AUX tigervnc.confd 346 RMD160 07a4541c0d9ef5611afafa8db75d2caf2e7ab051 SHA1 a3b00e99fc68844a7d0be29c4a8caae3a8b5a491 SHA256 48b6ae4f3e9e528b3cd4bc1349ceed3cd1a403ab0f3a2a8dd57a4769f88ceafc AUX tigervnc.initd 1585 RMD160 2fb536e85fa490df5450bf6e9f0296beb17921b1 SHA1 389d095ce1c18b323208ac059992cbd539d5a6b4 SHA256 a705a1aacdc3149a52b222fb990c654a5b5b5133d24be675ab327ec9a0c6f0e6 +AUX xserver111.patch 6542 RMD160 0ef07d4dd2a5af434a74996f9416631d299e550e SHA1 8bd891c29b6fcb2f9381800701ca461083441332 SHA256 f3827d742211b77807f1a02a47a99dddafe9efefbf9be17a21932e50abd1e63b DIST tigervnc-1.0.1_p20110618.tar.bz2 9307564 RMD160 c86f8d47a48082d5162e58bb469e3e470f2caedd SHA1 5b6d710b0d86ec2ef68d67012eb7eede8635eac5 SHA256 38f95f824fc697728f1f13c3f31dbf85b559307824df14f962f642f05e68b5fd +DIST tigervnc-1.1.0.tar.gz 2742707 RMD160 692ce76f38c229485ae75acb87f39f8844575e35 SHA1 a678745c231a37eea92c7c7c259f7495061a9a0d SHA256 594b70825a2c24863afd7b8dd2a5bc1935807118c6726e1d98396dee44d060f4 DIST tigervnc.png 4958 RMD160 24ca257dac5de8d97672d943ee47f310af4fe837 SHA1 2f12a12a0f105c6f2ecc9aa306c63719f07b0062 SHA256 e0828aeb92ccaaf93e690e9ee5e17803de1cb140d3ca79fb756fe08ebbc4492e DIST xorg-server-1.10.4.tar.bz2 5386174 RMD160 13eeaf7497e63ecddba46010c075d27121e18aae SHA1 857d6377025c77851a3cc5f8ec2ce84164a2fdc6 SHA256 fafc16b97b9a61b62dfaa74e8d336baa0cea752ce9ed8103c4d212baa8031ca5 +DIST xorg-server-1.11.2.tar.bz2 4945939 RMD160 cc69cfd86a5a870d1433262dd1445a8603a9266a SHA1 b4de5c599c90bd08d3122866ba68152cd59a880e SHA256 fa415decf02027ca278b06254ccfbcceba2a83c2741405257ebf749da4a73cf2 EBUILD tigervnc-1.0.1_p20110618-r1.ebuild 4550 RMD160 5362609ee5bb47b23ba8fe3219791a697ef49fb1 SHA1 57ccdc74bb801a13d9c431b2c46f3667fcca4087 SHA256 ffbddf412c8e445ebfc03e0a407857fea2422f4639f0fb24c0c5dc7e028e7133 -MISC ChangeLog 14608 RMD160 0cfac01bd77edd7760ef7eaea885ad215d70c460 SHA1 be497f8efaab5e8def50d3f01f259a2be1ce4501 SHA256 e69ee9a094c58cd2069336e64045dbc2144a75613bd5838fd5bacf9c39bd6bb1 +EBUILD tigervnc-1.1.0-r1.ebuild 4674 RMD160 e7fd5dc8a26ff46dcf88c2bef608c633fa81c833 SHA1 656d1893b65148666027ffd19526d73dd3168084 SHA256 299b1c1531e7757c2ed5a4fefb9ac1ac929d67a4f0af110fa59b31fd08d08e4e +EBUILD tigervnc-1.1.0.ebuild 4632 RMD160 34025ade33219e6e7ce41334e46bf9af127389d6 SHA1 622f189aff6a6c629f36eef34f97b8f3c30e9476 SHA256 c3110fb5cd0671a28e707a6445a539f123e13c8eb7563e9d274daf261c3ca3e3 +MISC ChangeLog 14833 RMD160 43004fd1c987f8d35222e70ce57d32c3872cf8f0 SHA1 ad9de76470e09388c017d31cc80abda3998acb9f SHA256 c746300712d7fb09cc6b0d518f19ccfe1972780f5f6a8c3fd467f872c3783790 MISC metadata.xml 335 RMD160 a1f13f76a1f6b93bfcda75e10afa92831f24e1a4 SHA1 7030f47cbe62c52bde156cacf6f123487ea7bee3 SHA256 821ea06553b929fa98b219ad2f17ca84dda361965182f46e030ddd3b2d950209 -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.17 (GNU/Linux) -iEYEARECAAYFAk61hpcACgkQuQc30/atMkA/vwCgqP5iB/+J1PeTG2HCeDfhWqUn -2usAn1JPUl7EdPLGclavnmpCa84EPLCL -=o1mW +iEYEARECAAYFAk6+tXsACgkQuQc30/atMkBLeACeOlwdMkqTzUcj1inQmO8RPRh4 +1GkAn3xC9+QhiQxMIexlBtk/SmDbMu8h +=f6kx -----END PGP SIGNATURE----- diff --git a/net-misc/tigervnc/files/xserver111.patch b/net-misc/tigervnc/files/xserver111.patch new file mode 100644 index 000000000000..18c0d46b1cb4 --- /dev/null +++ b/net-misc/tigervnc/files/xserver111.patch @@ -0,0 +1,240 @@ +diff -up tigervnc-1.1.0/unix/xserver/hw/vnc/Input.cc.xorg111 tigervnc-1.1.0/unix/xserver/hw/vnc/Input.cc +--- tigervnc-1.1.0/unix/xserver/hw/vnc/Input.cc.xorg111 2011-08-09 23:16:36.000000000 +0200 ++++ tigervnc-1.1.0/unix/xserver/hw/vnc/Input.cc 2011-09-14 13:22:19.540000049 +0200 +@@ -82,10 +82,11 @@ static KeyCode KeysymToKeycode(KeySymsPt + /* Event queue is shared between all devices. */ + #if XORG == 15 + static xEvent *eventq = NULL; +-#else ++#elif XORG < 111 + static EventList *eventq = NULL; + #endif + ++#if XORG < 111 + static void initEventq(void) + { + /* eventq is never free()-ed because it exists during server life. */ +@@ -100,7 +101,9 @@ static void initEventq(void) + #endif + } + } ++#endif /* XORG < 111 */ + ++#if XORG < 111 + static void enqueueEvents(DeviceIntPtr dev, int n) + { + int i; +@@ -122,6 +125,7 @@ static void enqueueEvents(DeviceIntPtr d + ); + } + } ++#endif /* XORG < 111 */ + + InputDevice::InputDevice(rfb::VNCServerST *_server) + : server(_server), oldButtonMask(0) +@@ -141,12 +145,17 @@ InputDevice::InputDevice(rfb::VNCServerS + keyboardProc, TRUE); + RegisterKeyboardDevice(keyboardDev); + #endif ++#if XORG < 111 + initEventq(); ++#endif + } + + void InputDevice::PointerButtonAction(int buttonMask) + { +- int i, n; ++ int i; ++#if XORG < 111 ++ int n; ++#endif + #if XORG >= 110 + ValuatorMask mask; + #endif +@@ -160,13 +169,17 @@ void InputDevice::PointerButtonAction(in + #if XORG < 110 + n = GetPointerEvents(eventq, pointerDev, action, i + 1, + POINTER_RELATIVE, 0, 0, NULL); +-#else ++ enqueueEvents(pointerDev, n); ++#elif XORG < 111 + valuator_mask_set_range(&mask, 0, 0, NULL); + n = GetPointerEvents(eventq, pointerDev, action, i + 1, + POINTER_RELATIVE, &mask); +-#endif + enqueueEvents(pointerDev, n); +- ++#else ++ valuator_mask_set_range(&mask, 0, 0, NULL); ++ QueuePointerEvents(pointerDev, action, i + 1, ++ POINTER_RELATIVE, &mask); ++#endif + } + } + +@@ -175,7 +188,10 @@ void InputDevice::PointerButtonAction(in + + void InputDevice::PointerMove(const rfb::Point &pos) + { +- int n, valuators[2]; ++ int valuators[2]; ++#if XORG < 111 ++ int n; ++#endif + #if XORG >= 110 + ValuatorMask mask; + #endif +@@ -190,12 +206,16 @@ void InputDevice::PointerMove(const rfb: + #if XORG < 110 + n = GetPointerEvents(eventq, pointerDev, MotionNotify, 0, POINTER_ABSOLUTE, 0, + 2, valuators); +-#else ++ enqueueEvents(pointerDev, n); ++#elif XORG < 111 + valuator_mask_set_range(&mask, 0, 2, valuators); + n = GetPointerEvents(eventq, pointerDev, MotionNotify, 0, POINTER_ABSOLUTE, + &mask); +-#endif + enqueueEvents(pointerDev, n); ++#else ++ valuator_mask_set_range(&mask, 0, 2, valuators); ++ QueuePointerEvents(pointerDev, MotionNotify, 0, POINTER_ABSOLUTE, &mask); ++#endif + + cursorPos = pos; + } +@@ -299,14 +319,20 @@ void InputDevice::initInputDevice(void) + static inline void pressKey(DeviceIntPtr dev, int kc, bool down, const char *msg) + { + int action; ++#if XORG < 111 + unsigned int n; ++#endif + + if (msg != NULL) + vlog.debug("%s %d %s", msg, kc, down ? "down" : "up"); + + action = down ? KeyPress : KeyRelease; +- n = GetKeyboardEvents(eventq, dev, action, kc); ++#if XORG < 111 ++ n = GetKeyboardEvents(eventq, dev, action, kc, NULL); + enqueueEvents(dev, n); ++#else ++ QueueKeyboardEvents(dev, action, kc, NULL); ++#endif + } + + #define IS_PRESSED(keyc, keycode) \ +@@ -341,8 +367,11 @@ public: + int state, maxKeysPerMod, keycode; + #if XORG >= 17 + KeyCode *modmap = NULL; ++ DeviceIntPtr master; + +- state = XkbStateFieldFromRec(&dev->u.master->key->xkbInfo->state); ++ master = GetMaster(dev, MASTER_KEYBOARD); ++ ++ state = XkbStateFieldFromRec(&master->key->xkbInfo->state); + #else + KeyClassPtr keyc = dev->key; + state = keyc->state; +@@ -379,8 +408,10 @@ public: + KeyClassPtr keyc; + #if XORG >= 17 + KeyCode *modmap = NULL; ++ DeviceIntPtr master; + +- keyc = dev->u.master->key; ++ master = GetMaster(dev, MASTER_KEYBOARD); ++ keyc = master->key; + state = XkbStateFieldFromRec(&keyc->xkbInfo->state); + #else + keyc = dev->key; +@@ -565,9 +596,7 @@ static inline int isModifier(KeySymsPtr + + void InputDevice::keyEvent(rdr::U32 keysym, bool down) + { +-#if XORG < 17 + DeviceIntPtr master; +-#endif + KeyClassPtr keyc; + KeySymsPtr keymap = NULL; + KeySym *map = NULL; +@@ -596,7 +625,8 @@ void InputDevice::keyEvent(rdr::U32 keys + } + + #if XORG >= 17 +- keyc = keyboardDev->u.master->key; ++ master = GetMaster(keyboardDev, MASTER_KEYBOARD); ++ keyc = master->key; + + keymap = XkbGetCoreMap(keyboardDev); + if (!keymap) { +@@ -753,7 +783,7 @@ ModeSwitchFound: + XkbApplyMappingChange(keyboardDev, keymap, minKeyCode, + maxKeyCode - minKeyCode + 1, + NULL, serverClient); +- XkbCopyDeviceKeymap(keyboardDev->u.master, keyboardDev); ++ XkbCopyDeviceKeymap(master, keyboardDev); + #endif /* XORG < 17 */ + break; + } +diff -up tigervnc-1.1.0/unix/xserver/hw/vnc/xorg-version.h.xorg111 tigervnc-1.1.0/unix/xserver/hw/vnc/xorg-version.h +--- tigervnc-1.1.0/unix/xserver/hw/vnc/xorg-version.h.xorg111 2011-08-09 23:16:36.000000000 +0200 ++++ tigervnc-1.1.0/unix/xserver/hw/vnc/xorg-version.h 2011-09-12 16:51:36.958000000 +0200 +@@ -36,6 +36,8 @@ + #define XORG 19 + #elif XORG_VERSION_CURRENT < ((1 * 10000000) + (10 * 100000) + (99 * 1000)) + #define XORG 110 ++#elif XORG_VERSION_CURRENT < ((1 * 10000000) + (11 * 100000) + (99 * 1000)) ++#define XORG 111 + #else + #error "X.Org newer than 1.10 is not supported" + #endif +diff -up tigervnc-1.1.0/unix/xserver/hw/vnc/xvnc.cc.xorg111 tigervnc-1.1.0/unix/xserver/hw/vnc/xvnc.cc +--- tigervnc-1.1.0/unix/xserver/hw/vnc/xvnc.cc.xorg111 2011-08-09 23:16:36.000000000 +0200 ++++ tigervnc-1.1.0/unix/xserver/hw/vnc/xvnc.cc 2011-09-14 13:49:23.751000543 +0200 +@@ -211,7 +211,11 @@ static void vfbFreeFramebufferMemory(vfb + + extern "C" { + ++#if XORG < 111 + void ddxGiveUp() ++#else ++void ddxGiveUp(enum ExitCode error) ++#endif + { + int i; + +@@ -221,9 +225,17 @@ void ddxGiveUp() + } + + void ++#if XORG < 111 + AbortDDX() ++#else ++AbortDDX(enum ExitCode error) ++#endif + { ++#if XORG < 111 + ddxGiveUp(); ++#else ++ ddxGiveUp(error); ++#endif + } + + #ifdef __DARWIN__ +@@ -668,8 +680,13 @@ vfbUninstallColormap(ColormapPtr pmap) + { + if (pmap->mid != pmap->pScreen->defColormap) + { ++#if XORG < 111 + curpmap = (ColormapPtr) LookupIDByType(pmap->pScreen->defColormap, + RT_COLORMAP); ++#else ++ dixLookupResourceByType((pointer *) &curpmap, pmap->pScreen->defColormap, ++ RT_COLORMAP, serverClient, DixUnknownAccess); ++#endif + (*pmap->pScreen->InstallColormap)(curpmap); + } + }
\ No newline at end of file diff --git a/net-misc/tigervnc/tigervnc-1.1.0-r1.ebuild b/net-misc/tigervnc/tigervnc-1.1.0-r1.ebuild new file mode 100644 index 000000000000..7ae1ee8c2aab --- /dev/null +++ b/net-misc/tigervnc/tigervnc-1.1.0-r1.ebuild @@ -0,0 +1,183 @@ +# Copyright 1999-2011 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/net-misc/tigervnc/tigervnc-1.1.0-r1.ebuild,v 1.1 2011/11/12 18:05:41 armin76 Exp $ + +EAPI="1" + +inherit eutils toolchain-funcs multilib autotools + +XSERVER_VERSION="1.11.2" +OPENGL_DIR="xorg-x11" + +DESCRIPTION="Remote desktop viewer display system" +HOMEPAGE="http://www.tigervnc.org" +#SRC_URI="mirror://gentoo/${P}.tar.bz2 +# http://dev.gentoo.org/~armin76/dist/${P}.tar.bz2 +SRC_URI="mirror://sourceforge/tigervnc/${P}.tar.gz + mirror://gentoo/${PN}.png + server? ( ftp://ftp.freedesktop.org/pub/xorg/individual/xserver/xorg-server-${XSERVER_VERSION}.tar.bz2 )" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sh ~sparc ~x86" +IUSE="nptl +opengl server +xorgmodule" + +RDEPEND="virtual/jpeg + sys-libs/zlib + media-libs/freetype + x11-libs/libSM + x11-libs/libXtst + app-admin/eselect-opengl + server? ( + x11-libs/libXi + x11-libs/libXfont + x11-libs/libXmu + x11-libs/libxkbfile + x11-libs/libXrender + x11-libs/pixman + x11-apps/xauth + x11-apps/xsetroot + x11-misc/xkeyboard-config + media-fonts/font-adobe-100dpi + media-fonts/font-adobe-75dpi + media-fonts/font-alias + media-fonts/font-cursor-misc + media-fonts/font-misc-misc + xorgmodule? ( ~x11-base/xorg-server-${XSERVER_VERSION} ) + ) + !net-misc/vnc + !net-misc/tightvnc + !net-misc/xf4vnc" +DEPEND="${RDEPEND} + amd64? ( dev-lang/nasm ) + x86? ( dev-lang/nasm ) + >=x11-proto/inputproto-1.5 + >=x11-proto/xextproto-7.0.3 + >=x11-proto/xproto-7.0.13 + server? ( + x11-misc/util-macros + x11-proto/bigreqsproto + x11-proto/compositeproto + x11-proto/damageproto + x11-proto/dri2proto + x11-proto/fixesproto + x11-proto/fontsproto + >=x11-proto/randrproto-1.2.99 + x11-proto/resourceproto + x11-proto/scrnsaverproto + x11-proto/trapproto + x11-proto/videoproto + x11-proto/xcmiscproto + x11-proto/xineramaproto + x11-proto/xf86bigfontproto + x11-proto/xf86dgaproto + x11-proto/xf86driproto + x11-proto/xf86miscproto + x11-proto/xf86vidmodeproto + opengl? ( >=x11-proto/glproto-1.4.10 ) + >=media-libs/mesa-7.1 + >=x11-proto/renderproto-0.9.3 + x11-libs/libpciaccess + >=x11-libs/xtrans-1.2.2 + )" + +#S="${WORKDIR}/${PN}" + +pkg_setup() { + if ! use server ; then + echo + einfo "The 'server' USE flag will build tigervnc's server." + einfo "If '-server' is chosen only the client is built to save space." + einfo "Stop the build now if you need to add 'server' to USE flags.\n" + ebeep + epause 5 + else + ewarn "Forcing on xorg-x11 for new enough glxtokens.h..." + OLD_IMPLEM="$(eselect opengl show)" + eselect opengl set ${OPENGL_DIR} + fi +} + +switch_opengl_implem() { + # Switch to the xorg implementation. + # Use new opengl-update that will not reset user selected + # OpenGL interface ... + echo + eselect opengl set ${OLD_IMPLEM} +} + +src_unpack() { + unpack ${A} + cd "${S}" + + if use server ; then + cp -r "${WORKDIR}"/xorg-server-${XSERVER_VERSION}/* unix/xserver + fi + + eautoreconf + cd unix + + if use server ; then + epatch xserver110.patch + epatch "${FILESDIR}"/xserver111.patch + cd xserver + eautoreconf + fi +} + +src_compile() { + econf --without-included-zlib --with-system-jpeg || die "econf failed" + emake || die "emake failed" + + if use server ; then + cd unix/xserver + econf \ + --disable-xorg --disable-xnest --disable-xvfb --disable-dmx \ + --disable-xwin --disable-xephyr --disable-kdrive --with-pic \ + --disable-static --disable-xinerama \ + --disable-composite \ + --with-default-font-path=/usr/share/fonts/misc,/usr/share/fonts/75dpi,/usr/share/fonts/100dpi,/usr/share/fonts/TTF,/usr/share/fonts/Type1 \ + --enable-install-libxf86config \ + --enable-dri2 \ + --disable-config-dbus \ + --disable-config-hal \ + --with-xmlto=no \ + --disable-unit-tests \ + $(use_enable opengl glx) \ + $(use_enable nptl glx-tls) \ + || die "econf server failed" + emake || die "emake server failed" + fi +} + +src_install() { + dodoc README.txt + + cd unix + emake DESTDIR="${D}" install || die "emake install failed" + newman vncviewer/vncviewer.man vncviewer.1 + + newicon "${DISTDIR}"/tigervnc.png vncviewer.png + make_desktop_entry vncviewer vncviewer vncviewer Network + + if use server ; then + cd xserver/hw/vnc + emake DESTDIR="${D}" install || die "emake install failed" + ! use xorgmodule && rm -rf "${D}"/usr/$(get_libdir)/xorg + + newconfd "${FILESDIR}"/${PN}.confd ${PN} + newinitd "${FILESDIR}"/${PN}.initd ${PN} + + rm "${D}"/usr/$(get_libdir)/xorg/modules/extensions/libvnc.la + else + cd "${D}" + for f in vncserver vncpasswd x0vncserver vncconfig; do + rm usr/bin/$f + rm usr/share/man/man1/$f.1 + done + fi +} + +pkg_postinst() { + use server && switch_opengl_implem +}
\ No newline at end of file diff --git a/net-misc/tigervnc/tigervnc-1.1.0.ebuild b/net-misc/tigervnc/tigervnc-1.1.0.ebuild new file mode 100644 index 000000000000..a77afc64ac8c --- /dev/null +++ b/net-misc/tigervnc/tigervnc-1.1.0.ebuild @@ -0,0 +1,182 @@ +# Copyright 1999-2011 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/net-misc/tigervnc/tigervnc-1.1.0.ebuild,v 1.1 2011/11/12 18:05:41 armin76 Exp $ + +EAPI="1" + +inherit eutils toolchain-funcs multilib autotools + +XSERVER_VERSION="1.10.4" +OPENGL_DIR="xorg-x11" + +DESCRIPTION="Remote desktop viewer display system" +HOMEPAGE="http://www.tigervnc.org" +#SRC_URI="mirror://gentoo/${P}.tar.bz2 +# http://dev.gentoo.org/~armin76/dist/${P}.tar.bz2 +SRC_URI="mirror://sourceforge/tigervnc/${P}.tar.gz + mirror://gentoo/${PN}.png + server? ( ftp://ftp.freedesktop.org/pub/xorg/individual/xserver/xorg-server-${XSERVER_VERSION}.tar.bz2 )" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sh ~sparc ~x86" +IUSE="nptl +opengl server +xorgmodule" + +RDEPEND="virtual/jpeg + sys-libs/zlib + media-libs/freetype + x11-libs/libSM + x11-libs/libXtst + app-admin/eselect-opengl + server? ( + x11-libs/libXi + x11-libs/libXfont + x11-libs/libXmu + x11-libs/libxkbfile + x11-libs/libXrender + x11-libs/pixman + x11-apps/xauth + x11-apps/xsetroot + x11-misc/xkeyboard-config + media-fonts/font-adobe-100dpi + media-fonts/font-adobe-75dpi + media-fonts/font-alias + media-fonts/font-cursor-misc + media-fonts/font-misc-misc + xorgmodule? ( ~x11-base/xorg-server-${XSERVER_VERSION} ) + ) + !net-misc/vnc + !net-misc/tightvnc + !net-misc/xf4vnc" +DEPEND="${RDEPEND} + amd64? ( dev-lang/nasm ) + x86? ( dev-lang/nasm ) + >=x11-proto/inputproto-1.5 + >=x11-proto/xextproto-7.0.3 + >=x11-proto/xproto-7.0.13 + server? ( + x11-misc/util-macros + x11-proto/bigreqsproto + x11-proto/compositeproto + x11-proto/damageproto + x11-proto/dri2proto + x11-proto/fixesproto + x11-proto/fontsproto + >=x11-proto/randrproto-1.2.99 + x11-proto/resourceproto + x11-proto/scrnsaverproto + x11-proto/trapproto + x11-proto/videoproto + x11-proto/xcmiscproto + x11-proto/xineramaproto + x11-proto/xf86bigfontproto + x11-proto/xf86dgaproto + x11-proto/xf86driproto + x11-proto/xf86miscproto + x11-proto/xf86vidmodeproto + opengl? ( >=x11-proto/glproto-1.4.10 ) + >=media-libs/mesa-7.1 + >=x11-proto/renderproto-0.9.3 + x11-libs/libpciaccess + >=x11-libs/xtrans-1.2.2 + )" + +#S="${WORKDIR}/${PN}" + +pkg_setup() { + if ! use server ; then + echo + einfo "The 'server' USE flag will build tigervnc's server." + einfo "If '-server' is chosen only the client is built to save space." + einfo "Stop the build now if you need to add 'server' to USE flags.\n" + ebeep + epause 5 + else + ewarn "Forcing on xorg-x11 for new enough glxtokens.h..." + OLD_IMPLEM="$(eselect opengl show)" + eselect opengl set ${OPENGL_DIR} + fi +} + +switch_opengl_implem() { + # Switch to the xorg implementation. + # Use new opengl-update that will not reset user selected + # OpenGL interface ... + echo + eselect opengl set ${OLD_IMPLEM} +} + +src_unpack() { + unpack ${A} + cd "${S}" + + if use server ; then + cp -r "${WORKDIR}"/xorg-server-${XSERVER_VERSION}/* unix/xserver + fi + + eautoreconf + cd unix + + if use server ; then + epatch xserver110.patch + cd xserver + eautoreconf + fi +} + +src_compile() { + econf --without-included-zlib --with-system-jpeg || die "econf failed" + emake || die "emake failed" + + if use server ; then + cd unix/xserver + econf \ + --disable-xorg --disable-xnest --disable-xvfb --disable-dmx \ + --disable-xwin --disable-xephyr --disable-kdrive --with-pic \ + --disable-static --disable-xinerama \ + --disable-composite \ + --with-default-font-path=/usr/share/fonts/misc,/usr/share/fonts/75dpi,/usr/share/fonts/100dpi,/usr/share/fonts/TTF,/usr/share/fonts/Type1 \ + --enable-install-libxf86config \ + --enable-dri2 \ + --disable-config-dbus \ + --disable-config-hal \ + --with-xmlto=no \ + --disable-unit-tests \ + $(use_enable opengl glx) \ + $(use_enable nptl glx-tls) \ + || die "econf server failed" + emake || die "emake server failed" + fi +} + +src_install() { + dodoc README.txt + + cd unix + emake DESTDIR="${D}" install || die "emake install failed" + newman vncviewer/vncviewer.man vncviewer.1 + + newicon "${DISTDIR}"/tigervnc.png vncviewer.png + make_desktop_entry vncviewer vncviewer vncviewer Network + + if use server ; then + cd xserver/hw/vnc + emake DESTDIR="${D}" install || die "emake install failed" + ! use xorgmodule && rm -rf "${D}"/usr/$(get_libdir)/xorg + + newconfd "${FILESDIR}"/${PN}.confd ${PN} + newinitd "${FILESDIR}"/${PN}.initd ${PN} + + rm "${D}"/usr/$(get_libdir)/xorg/modules/extensions/libvnc.la + else + cd "${D}" + for f in vncserver vncpasswd x0vncserver vncconfig; do + rm usr/bin/$f + rm usr/share/man/man1/$f.1 + done + fi +} + +pkg_postinst() { + use server && switch_opengl_implem +} |