# temp build fix: %define _disable_ld_no_undefined 1 Name: tigervnc Version: 1.6.0 Release: %mkrel 2 Summary: Viewer for the VNC remote display system Group: Networking/Remote access License: GPLv2+ URL: http://www.tigervnc.com/ Source0: https://github.com/TigerVNC/tigervnc/archive/v%{version}.tar.gz Source6: vncviewer.desktop BuildRequires: x11-server-source BuildRequires: gettext-devel BuildRequires: pkgconfig(x11) BuildRequires: libxext-devel BuildRequires: x11-font-util BuildRequires: x11-util-macros BuildRequires: x11-xtrans-devel BuildRequires: mesagl-devel BuildRequires: libxkbfile-devel BuildRequires: libxfont-devel BuildRequires: pixman-devel BuildRequires: openssl-devel BuildRequires: libpciaccess-devel BuildRequires: libpam-devel BuildRequires: libxtst-devel BuildRequires: gnutls-devel BuildRequires: imagemagick BuildRequires: nasm BuildRequires: java-devel BuildRequires: desktop-file-utils BuildRequires: jpackage-utils BuildRequires: fltk-devel BuildRequires: libtool BuildRequires: autoconf BuildRequires: libxi-devel BuildRequires: libxinerama-devel BuildRequires: freetype-devel BuildRequires: libxdmcp-devel BuildRequires: pam-devel BuildRequires: libjpeg-devel BuildRequires: cmake Patch1: tigervnc-cookie.patch Patch3: tigervnc-libvnc-os.patch Patch4: tigervnc11-rh692048.patch Patch5: tigervnc-inetd-nowait.patch Patch7: tigervnc-manpages.patch Patch8: tigervnc-getmaster.patch Patch9: tigervnc-shebang.patch # Patch from openmdv to build Patch10: tigervnc11-mdv-link.patch Patch12: tigervnc11-mdv-buildir.patch #Patches from fedora Patch14: tigervnc-xstartup.patch Patch15: tigervnc-xserver118.patch Patch17: tigervnc-xorg118-QueueKeyboardEvents.patch # rediffed from rhel Patch29: tigervnc-1.5.0-CVE-2014-8241.patch Patch30: tigervnc-1.5.0-CVE-2014-8240.patch # This is tigervnc-%%{version}/unix/xserver116.patch rebased on the latest xorg Patch100: tigervnc-xserver116-rebased.patch %description Virtual Network Computing (VNC) is a remote display system which allows you to view a computing 'desktop' environment not only on the machine where it is running, but from anywhere on the Internet and from a wide variety of machine architectures. This package contains a client which will allow you to connect to other desktops running a VNC server. %files -f %{name}.lang %_defaultdocdir/%{name}-%{version}/* %{_bindir}/vncviewer %{_iconsdir}/* %{_datadir}/applications/* %{_mandir}/man1/vncviewer.1* #------------------------------------------------------------------------------ %package server Summary: Server for the VNC remote display system Group: Networking/Remote access Requires: vnc-server-common %description server The VNC system allows you to access the same desktop from a wide variety of platforms. This package is a TigerVNC server, allowing others to access the desktop on your machine. %files server %{_bindir}/vncconfig %{_bindir}/vncpasswd %{_bindir}/x0vncserver %{_bindir}/Xvnc %{_bindir}/vncserver %{_mandir}/man1/Xvnc.1* %{_mandir}/man1/vncpasswd.1* %{_mandir}/man1/vncconfig.1* %{_mandir}/man1/vncserver.1* %{_mandir}/man1/x0vncserver.1* #------------------------------------------------------------------------------ %package server-module Summary: Xorg module for the VNC remote display system Group: Networking/Remote access Requires: x11-server-xorg %description server-module This package contains libvnc.so module to X server, allowing others to access the desktop on your machine. %files server-module %{_libdir}/xorg/modules/extensions/libvnc.so #------------------------------------------------------------------------------ %package java Summary: Java viewer for the VNC remote display system Group: Networking/Remote access # "TightVNC-specific" is not a typo, see the README file located inside the # java source tree %description java This distribution is based on the standard VNC source and includes new TightVNC-specific features and fixes, such as additional low-bandwidth optimizations, major GUI improvements, and more. There are three basic ways to use TigerVNC Java viewer: 1. Running applet as part of TigerVNC server installation. 2. Running applet hosted on a standalone Web server. 3. Running the viewer as a standalone application. %files java %{_javadir}/*.jar %{_datadir}/vnc #------------------------------------------------------------------------------ %prep %setup -q -n %{name}-%{version} %patch12 -p1 -b .builddir %patch1 -p1 -b .cookie %patch3 -p1 -b .libvnc-os %patch4 -p1 -b .rh692048 cp -r /usr/share/x11-server-source/* unix/xserver pushd unix/xserver for all in `find . -type f -perm -001`; do chmod -x "$all" done %patch100 -p1 -b .xserver116-rebased popd # Applied Debian patch to fix busy loop when run from inetd in nowait # mode (bug #920373). %patch5 -p1 -b .inetd-nowait # Synchronise manpages and --help output (bug #980870). %patch7 -p1 -b .manpages # libvnc.so: don't use unexported GetMaster function (bug #744881 again). %patch8 -p1 -b .getmaster # Don't use shebang in vncserver script. %patch9 -p1 -b .shebang # Clearer xstartup file (bug #923655). %patch14 -p1 -b .xstartup %patch10 -p1 -b .link # Allow build against xorg-x11-server-1.18. %patch15 -p1 -b .xserver118 %patch17 -p1 -b .xorg118-QueueKeyboardEvents %patch29 -p1 -b .CVE-2014-8241 %patch30 -p1 -b .CVE-2014-8240 %build %cmake %make cd .. pushd unix/xserver rm -f configure autoreconf -fiv %configure2_5x --disable-xorg --disable-xnest --disable-xvfb --disable-dmx \ --disable-xwin --disable-xephyr --disable-kdrive --disable-xwayland \ --with-pic --disable-static --disable-xinerama \ --with-default-font-path="catalogue:%{_sysconfdir}/X11/fontpath.d,built-ins" \ --with-fontdir=%{_datadir}/X11/fonts \ --with-xkb-output=%{_localstatedir}/lib/xkb \ --enable-install-libxf86config \ --enable-glx --disable-dri --enable-dri2 --disable-dri3 \ --disable-config-dbus \ --disable-wayland \ --disable-present \ --disable-config-hal \ --disable-config-udev \ --with-dri-driver-path=%{_libdir}/dri \ --without-dtrace \ --disable-unit-tests \ --disable-devel-docs \ --disable-selective-werror %make popd # Build icons pushd media %cmake %make popd # Build Java applet pushd java %{cmake} %make #cd .. popd %install pushd build %makeinstall_std popd pushd unix/xserver/hw/vnc %makeinstall_std popd # Install desktop stuff mkdir -p %{buildroot}/%{_datadir}/icons/hicolor/{16x16,24x24,48x48}/apps pushd media/icons for s in 16 24 48; do install -m644 tigervnc_$s.png %{buildroot}/%{_datadir}/icons/hicolor/${s}x$s/apps/tigervnc.png done popd mkdir %{buildroot}/%{_datadir}/applications desktop-file-install \ --dir %{buildroot}%{_datadir}/applications \ %{SOURCE6} %find_lang %{name} %{name}.lang # remove unwanted files rm -f %{buildroot}/%{_libdir}/xorg/modules/extensions/libvnc.la # Install Java applet install -d -m 755 %{buildroot}%{_javadir} install -d -m 755 %{buildroot}%{_datadir}/vnc/classes pushd java/build install -m 755 VncViewer.jar %{buildroot}%{_datadir}/vnc/classes/vncviewer-%{version}.jar popd pushd java install -m 644 com/tigervnc/vncviewer/index.vnc %{buildroot}%{_datadir}/vnc/classes popd pushd %{buildroot}%{_datadir}/vnc/classes mv vncviewer-%{version}.jar %{buildroot}%{_javadir} ln -s %{_javadir}/vncviewer-%{version}.jar VncViewer.jar popd pushd %{buildroot}%{_javadir} ln -s vncviewer-%{version}.jar vncviewer.jar ln -s vncviewer-%{version}.jar VncViewer.jar popd