1 |
Name: tigervnc |
2 |
Version: 1.11.0 |
3 |
%define subrel 1 |
4 |
Release: %mkrel 4 |
5 |
Summary: Viewer for the VNC remote display system |
6 |
Group: Networking/Remote access |
7 |
License: GPLv2+ |
8 |
URL: http://www.tigervnc.com/ |
9 |
Source0: https://github.com/TigerVNC/tigervnc/archive/v%{version}/%{name}-%{version}.tar.gz |
10 |
Source1: xvnc.service |
11 |
Source2: xvnc.socket |
12 |
Source4: HOWTO.md |
13 |
|
14 |
Patch8: tigervnc-getmaster.patch |
15 |
# initially from openmdv |
16 |
Patch12: tigervnc-1.8.90-mga-buildir.patch |
17 |
#Patches from fedora |
18 |
|
19 |
# copied from debian |
20 |
Patch30: tigervnc-1.8.0-CVE-2014-8240.patch |
21 |
|
22 |
# This is tigervnc-%%{version}/unix/xserver120.patch rebased on the latest xorg |
23 |
Patch100: tigervnc-xserver120.patch |
24 |
|
25 |
BuildRequires: x11-server-source |
26 |
BuildRequires: gettext-devel |
27 |
BuildRequires: pkgconfig(x11) |
28 |
BuildRequires: libxext-devel |
29 |
BuildRequires: x11-font-util |
30 |
BuildRequires: x11-util-macros |
31 |
BuildRequires: x11-xtrans-devel |
32 |
BuildRequires: mesagl-devel |
33 |
BuildRequires: libxkbfile-devel |
34 |
BuildRequires: libxfont2-devel |
35 |
BuildRequires: pixman-devel |
36 |
BuildRequires: openssl-devel |
37 |
BuildRequires: libpciaccess-devel |
38 |
BuildRequires: libpam-devel |
39 |
BuildRequires: libxtst-devel |
40 |
BuildRequires: gnutls-devel |
41 |
BuildRequires: imagemagick |
42 |
BuildRequires: nasm |
43 |
BuildRequires: java-devel |
44 |
BuildRequires: desktop-file-utils |
45 |
BuildRequires: jpackage-utils |
46 |
BuildRequires: fltk-devel |
47 |
BuildRequires: libtool |
48 |
BuildRequires: autoconf |
49 |
BuildRequires: libxi-devel |
50 |
BuildRequires: libxinerama-devel |
51 |
BuildRequires: freetype-devel |
52 |
BuildRequires: libxdmcp-devel |
53 |
BuildRequires: pam-devel |
54 |
BuildRequires: libjpeg-devel |
55 |
BuildRequires: cmake |
56 |
BuildRequires: libxrandr-devel |
57 |
|
58 |
%description |
59 |
Virtual Network Computing (VNC) is a remote display system which |
60 |
allows you to view a computing 'desktop' environment not only on the |
61 |
machine where it is running, but from anywhere on the Internet and |
62 |
from a wide variety of machine architectures. This package contains a |
63 |
client which will allow you to connect to other desktops running a VNC |
64 |
server. |
65 |
|
66 |
#------------------------------------------------------------------------------ |
67 |
|
68 |
%package server |
69 |
|
70 |
Summary: Server for the VNC remote display system |
71 |
Group: Networking/Remote access |
72 |
|
73 |
Requires: vnc-server-common |
74 |
|
75 |
%description server |
76 |
The VNC system allows you to access the same desktop from a wide |
77 |
variety of platforms. This package is a TigerVNC server, allowing |
78 |
others to access the desktop on your machine. |
79 |
|
80 |
#------------------------------------------------------------------------------ |
81 |
|
82 |
%package server-module |
83 |
|
84 |
Summary: Xorg module for the VNC remote display system |
85 |
Group: Networking/Remote access |
86 |
|
87 |
Requires: x11-server-xorg |
88 |
|
89 |
%description server-module |
90 |
This package contains libvnc.so module to X server, allowing others |
91 |
to access the desktop on your machine. |
92 |
|
93 |
#------------------------------------------------------------------------------ |
94 |
|
95 |
%package java |
96 |
|
97 |
Summary: Java viewer for the VNC remote display system |
98 |
Group: Networking/Remote access |
99 |
|
100 |
|
101 |
# "TightVNC-specific" is not a typo, see the README file located inside the |
102 |
# java source tree |
103 |
%description java |
104 |
This distribution is based on the standard VNC source and includes new |
105 |
TightVNC-specific features and fixes, such as additional low-bandwidth |
106 |
optimizations, major GUI improvements, and more. |
107 |
|
108 |
There are three basic ways to use TigerVNC Java viewer: |
109 |
1. Running applet as part of TigerVNC server installation. |
110 |
2. Running applet hosted on a standalone Web server. |
111 |
3. Running the viewer as a standalone application. |
112 |
|
113 |
#------------------------------------------------------------------------------ |
114 |
|
115 |
%prep |
116 |
%setup -q |
117 |
|
118 |
%patch12 -p1 -b .builddir |
119 |
|
120 |
cp -r /usr/share/x11-server-source/* unix/xserver |
121 |
pushd unix/xserver |
122 |
for all in `find . -type f -perm -001`; do |
123 |
chmod -x "$all" |
124 |
done |
125 |
%patch100 -p1 -b .xserver120-rebased |
126 |
popd |
127 |
|
128 |
# libvnc.so: don't use unexported GetMaster function (bug #744881 again). |
129 |
%patch8 -p1 -b .getmaster |
130 |
|
131 |
%patch30 -p1 -b .CVE-2014-8240 |
132 |
|
133 |
# make pam_selinux.so optional |
134 |
sed -i -e '/pam_selinux\.so/s/required/optional/g' unix/vncserver/tigervnc.pam |
135 |
|
136 |
%build |
137 |
%cmake |
138 |
%cmake_build |
139 |
|
140 |
pushd unix/xserver |
141 |
rm -f configure |
142 |
autoreconf -fiv |
143 |
%configure \ |
144 |
--disable-xorg --disable-xnest --disable-xvfb --disable-dmx \ |
145 |
--disable-xwin --disable-xephyr --disable-kdrive --disable-xwayland \ |
146 |
--with-pic --disable-static \ |
147 |
--with-default-font-path="catalogue:%{_sysconfdir}/X11/fontpath.d,built-ins" \ |
148 |
--with-fontrootdir=%{_datadir}/X11/fonts \ |
149 |
--with-xkb-output=%{_localstatedir}/lib/xkb \ |
150 |
--enable-glx --disable-dri --enable-dri2 --disable-dri3 \ |
151 |
--disable-unit-tests \ |
152 |
--disable-config-hal \ |
153 |
--disable-config-udev \ |
154 |
--without-dtrace \ |
155 |
--disable-devel-docs \ |
156 |
--disable-selective-werror |
157 |
|
158 |
%make_build |
159 |
popd |
160 |
|
161 |
|
162 |
# Build icons |
163 |
pushd media |
164 |
%cmake |
165 |
%cmake_build |
166 |
popd |
167 |
|
168 |
# Build Java applet |
169 |
pushd java |
170 |
%cmake |
171 |
JAVA_TOOL_OPTIONS="-Dfile.encoding=UTF8" \ |
172 |
%cmake_build |
173 |
popd |
174 |
|
175 |
%install |
176 |
%cmake_install |
177 |
|
178 |
%make_install -C unix/xserver/hw/vnc |
179 |
|
180 |
# Install systemd unit file |
181 |
install -m644 %{SOURCE1} %{buildroot}%{_unitdir}/xvnc@.service |
182 |
install -m644 %{SOURCE2} %{buildroot}%{_unitdir}/xvnc.socket |
183 |
|
184 |
# Install desktop stuff |
185 |
mkdir -p %{buildroot}%{_datadir}/icons/hicolor/{16x16,24x24,48x48}/apps |
186 |
|
187 |
pushd media/icons |
188 |
for s in 16 24 48; do |
189 |
install -m644 tigervnc_$s.png %{buildroot}%{_datadir}/icons/hicolor/${s}x$s/apps/tigervnc.png |
190 |
done |
191 |
popd |
192 |
|
193 |
# Install a replacement for /usr/bin/vncserver which will tell the user to read the |
194 |
# HOWTO.md file |
195 |
cat <<EOF > %{buildroot}/%{_bindir}/vncserver |
196 |
#!/bin/bash |
197 |
echo "vncserver has been replaced by a systemd unit." |
198 |
echo "Please read /usr/share/doc/tigervnc/HOWTO.md for more information." |
199 |
EOF |
200 |
chmod +x %{buildroot}/%{_bindir}/vncserver |
201 |
|
202 |
install -m 644 %{SOURCE4} . |
203 |
|
204 |
%find_lang %{name} %{name}.lang |
205 |
|
206 |
# remove unwanted files |
207 |
rm -f %{buildroot}%{_libdir}/xorg/modules/extensions/libvnc.la |
208 |
|
209 |
# Install Java applet |
210 |
|
211 |
install -d -m 755 %{buildroot}%{_javadir} |
212 |
install -d -m 755 %{buildroot}%{_datadir}/vnc/classes |
213 |
pushd java/build |
214 |
|
215 |
install -m 755 VncViewer.jar %{buildroot}%{_datadir}/vnc/classes/vncviewer-%{version}.jar |
216 |
popd |
217 |
|
218 |
pushd %{buildroot}%{_datadir}/vnc/classes |
219 |
mv vncviewer-%{version}.jar %{buildroot}%{_javadir} |
220 |
ln -s %{_javadir}/vncviewer-%{version}.jar VncViewer.jar |
221 |
popd |
222 |
|
223 |
pushd %{buildroot}%{_javadir} |
224 |
ln -s vncviewer-%{version}.jar vncviewer.jar |
225 |
ln -s vncviewer-%{version}.jar VncViewer.jar |
226 |
popd |
227 |
|
228 |
%files -f %{name}.lang |
229 |
%doc README.rst |
230 |
%_defaultdocdir/%{name}/ |
231 |
%{_bindir}/vncviewer |
232 |
%{_iconsdir}/* |
233 |
%{_datadir}/applications/* |
234 |
%{_mandir}/man1/vncviewer.1* |
235 |
|
236 |
|
237 |
%files server |
238 |
%doc HOWTO.md |
239 |
%config(noreplace) %{_sysconfdir}/pam.d/tigervnc |
240 |
%config(noreplace) %{_sysconfdir}/tigervnc/vncserver-config-defaults |
241 |
%config(noreplace) %{_sysconfdir}/tigervnc/vncserver-config-mandatory |
242 |
%config(noreplace) %{_sysconfdir}/tigervnc/vncserver.users |
243 |
%{_unitdir}/vncserver@.service |
244 |
%{_unitdir}/xvnc@.service |
245 |
%{_unitdir}/xvnc.socket |
246 |
%{_bindir}/vncconfig |
247 |
%{_bindir}/vncpasswd |
248 |
%{_bindir}/Xvnc |
249 |
%{_bindir}/vncserver |
250 |
%{_bindir}/x0vncserver |
251 |
%{_sbindir}/vncsession |
252 |
%{_libexecdir}/vncserver |
253 |
%{_libexecdir}/vncsession-start |
254 |
%{_mandir}/man1/Xvnc.1* |
255 |
%{_mandir}/man1/vncpasswd.1* |
256 |
%{_mandir}/man1/vncconfig.1* |
257 |
%{_mandir}/man1/x0vncserver.1* |
258 |
%{_mandir}/man8/vncserver.8* |
259 |
%{_mandir}/man8/vncsession.8* |
260 |
|
261 |
%files server-module |
262 |
%{_libdir}/xorg/modules/extensions/libvnc.so |
263 |
|
264 |
%files java |
265 |
%{_javadir}/*.jar |
266 |
%{_datadir}/vnc |
267 |
|