summaryrefslogtreecommitdiff
blob: a36fae004155bc7bdb0b08e12bd59e888d64c505 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
# Copyright 1999-2006 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/net-misc/vnc/vnc-4.1.2.ebuild,v 1.4 2006/08/29 10:54:26 blubb Exp $

inherit eutils toolchain-funcs multilib autotools

XSERVER_VERSION="1.1.1"

MY_P="vnc-4_1_2-unixsrc"
DESCRIPTION="Remote desktop viewer display system"
HOMEPAGE="http://www.realvnc.com/"
SRC_URI="http://ltsp.mirrors.tds.net/pub/ltsp/tarballs/${MY_P}.tar.gz
	http://ftp.plusline.de/FreeBSD/distfiles/xc/${MY_P}.tar.gz
	http://www.gentooexperimental.org/~genstef/dist/${P}-patches.tar.bz2
	server? ( ftp://ftp.freedesktop.org/pub/xorg/individual/xserver/xorg-server-${XSERVER_VERSION}.tar.bz2	)"

LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~alpha amd64 ~ia64 ~mips ~ppc ppc64 ~sparc ~x86"
IUSE="server"

RDEPEND="sys-libs/zlib
	media-libs/freetype
	|| ( ( x11-libs/libSM
			x11-libs/libXtst
		)
		virtual/x11
	)
	server? ( || ( ( x11-libs/libXi
			x11-libs/libXfont
			x11-libs/libXmu
			x11-libs/libxkbfile
			x11-libs/libXrender
			x11-apps/xauth
			x11-apps/xsetroot
			x11-proto/compositeproto
			x11-proto/damageproto
			x11-proto/fixesproto
			x11-proto/fontsproto
			x11-proto/randrproto
			x11-proto/resourceproto
			x11-proto/scrnsaverproto
			x11-proto/trapproto
			x11-proto/videoproto
			x11-proto/xineramaproto
			x11-proto/xf86bigfontproto
			x11-proto/xf86dgaproto
			x11-proto/xf86miscproto
			x11-proto/xf86vidmodeproto
			media-fonts/font-adobe-100dpi
			media-fonts/font-adobe-75dpi
			media-fonts/font-alias
			media-fonts/font-cursor-misc
			media-fonts/font-misc-misc
			)
			virtual/x11
		)
	)
	!net-misc/tightvnc"
DEPEND="${RDEPEND}
	|| ( ( x11-proto/xextproto
		)
		virtual/x11
	)"

S="${WORKDIR}/${MY_P}"

src_unpack() {
	unpack ${A}
	
	cd ${S}

	# patches from Fedora
	epatch ${WORKDIR}/${P}/vnc-viewer-reparent.patch
	epatch ${WORKDIR}/${P}/vnc-newfbsize.patch

	if use server; then
		mv ${WORKDIR}/xorg-server-${XSERVER_VERSION} unix/

		# patches from Fedora
		epatch ${WORKDIR}/${P}/vnc-cookie.patch
		epatch ${WORKDIR}/${P}/vnc-gcc4.patch
		epatch ${WORKDIR}/${P}/vnc-use-fb.patch
		epatch ${WORKDIR}/${P}/vnc-xclients.patch
		epatch ${WORKDIR}/${P}/vnc-idle.patch
		epatch ${WORKDIR}/${P}/vnc-via.patch
		epatch ${WORKDIR}/${P}/vnc-build.patch
		epatch ${WORKDIR}/${P}/vnc-fPIC.patch
		epatch ${WORKDIR}/${P}/vnc-restart.patch
		epatch ${WORKDIR}/${P}/vnc-vncpasswd.patch
		epatch ${WORKDIR}/${P}/vnc-def.patch
		epatch ${WORKDIR}/${P}/vnc-modular-xorg.patch
		epatch ${WORKDIR}/${P}/vnc-nohttpd.patch

		cd unix/xorg-server-*
		epatch ${WORKDIR}/${P}/vnc-fontpath.patch
		epatch ${WORKDIR}/${P}/vnc-s390.patch

		cd ../../

		epatch ${WORKDIR}/${P}/vnc-64bit.patch
		epatch ${WORKDIR}/${P}/vnc-select.patch
		epatch ${WORKDIR}/${P}/vnc-opengl.patch

		cp -a ${S}/unix/xc/programs/Xserver/vnc/Xvnc/xvnc.cc \
			${S}/unix/xc/programs/Xserver/Xvnc.man \
			${S}/unix/xc/programs/Xserver/vnc/*.{h,cc} \
			${S}/unix/xorg-server-*/hw/vnc
		cp -a ${S}/unix/xorg-server-*/{cfb/cfb.h,hw/vnc}
		cp -a ${S}/unix/xorg-server-*/{fb/fb.h,hw/vnc}
		cp -a ${S}/unix/xorg-server-*/{fb/fbrop.h,hw/vnc}
		sed -i -e 's,xor,c_xor,' -e 's,and,c_and,' \
			${S}/unix/xorg-server*/hw/vnc/{cfb,fb,fbrop}.h
	fi
}

src_compile() {
	cd unix
	eautoreconf
	econf --with-installed-zlib --with-fb || die "econf failed"
	emake || die "emake failed"

	if use server; then
		cd xorg-server-*
		eautoreconf
		econf \
			--enable-xorg \
			--disable-dependency-tracking \
			--disable-xprint \
			--disable-static \
			--enable-composite \
			--with-xkb-output=/usr/share/X11/xkb \
			--with-rgb-path=/usr/share/X11/rgb.txt \
			--disable-xorgcfg \
			--disable-dmx \
			--disable-lbx \
			--enable-xdmcp \
			--disable-xevie \
			--disable-dri \
			--with-int10=stub \
			--with-default-font-path=/usr/share/fonts/misc,/usr/share/fonts/75dpi,/usr/share/fonts/100dpi,/usr/share/fonts/TTF,/usr/share/fonts/Type1 \
			|| die "econf server failed"
		emake CDEBUGFLAGS="${CFLAGS}" CXXDEBUGFLAGS="${CXXFLAGS}" || die "emake server failed"
	fi
}

src_install() {
	dodir /usr/bin /usr/share/man/man1
	use server && dodir /usr/$(get_libdir)/modules/extensions

	cd unix
	./vncinstall ${D}/usr/bin ${D}/usr/share/man ${D}/usr/$(get_libdir)/modules/extensions || die
	cd ..
	dodoc README

	use server || (
		rm ${D}/usr/bin/vncserver
		rm ${D}/usr/bin/x0vncserver
		rm ${D}/usr/share/man/man1/vnc{passwd,config,server}.1
		rm ${D}/usr/share/man/man1/x0vncserver.1
		rm ${D}/usr/bin/vncpasswd
		rm ${D}/usr/bin/vncconfig
	)

	ewarn "Note that the free VNC release is not designed for use on untrusted networks"
}