forked from pool/tigervnc
Accepting request 209248 from home:michalsrb:branches:X11:XOrg
- Update client to 1.3.0. - Build xorg-x11-Xvnc package from this sources. OBS-URL: https://build.opensuse.org/request/show/209248 OBS-URL: https://build.opensuse.org/package/show/X11:XOrg/tigervnc?expand=0&rev=5
This commit is contained in:
parent
cd29bca40a
commit
b151ac9e0b
19
10-libvnc.conf
Normal file
19
10-libvnc.conf
Normal file
@ -0,0 +1,19 @@
|
||||
# This file contains configuration of libvnc.so module
|
||||
#
|
||||
# To get libvnc.so module working, do this:
|
||||
# 1. run "vncpasswd" as root user
|
||||
# 2. uncomment configuration lines below
|
||||
#
|
||||
# Please note you can specify any option which Xvnc accepts.
|
||||
# Refer to `Xvnc -help` output for detailed list of options.
|
||||
|
||||
#Section "Module"
|
||||
# Load "vnc"
|
||||
#EndSection
|
||||
|
||||
#Section "Screen"
|
||||
# Identifier "Screen0
|
||||
# DefaultDepth 16
|
||||
# Option "SecurityTypes" "VncAuth"
|
||||
# Option "PasswordFile" "/root/.vnc/passwd"
|
||||
#EndSection
|
30
N_xorg-server-xdmcp.patch
Normal file
30
N_xorg-server-xdmcp.patch
Normal file
@ -0,0 +1,30 @@
|
||||
Index: xorg-server-1.12.1/os/access.c
|
||||
===================================================================
|
||||
--- xorg-server-1.12.1.orig/os/access.c
|
||||
+++ xorg-server-1.12.1/os/access.c
|
||||
@@ -714,7 +714,9 @@ DefineSelf(int fd)
|
||||
|
||||
/*
|
||||
* ignore 'localhost' entries as they're not useful
|
||||
- * on the other end of the wire
|
||||
+ * on the other end of the wire and because on hosts
|
||||
+ * with shared home dirs they'll result in conflicting
|
||||
+ * entries in ~/.Xauthority
|
||||
*/
|
||||
if (ifr->ifa_flags & IFF_LOOPBACK)
|
||||
continue;
|
||||
@@ -735,6 +737,14 @@ DefineSelf(int fd)
|
||||
else if (family == FamilyInternet6 &&
|
||||
IN6_IS_ADDR_LOOPBACK((struct in6_addr *) addr))
|
||||
continue;
|
||||
+
|
||||
+ /* Ignore IPv6 link local addresses (fe80::/10), because
|
||||
+ * they need a scope identifier, which we have no way
|
||||
+ * of telling to the other end.
|
||||
+ */
|
||||
+ if (family == FamilyInternet6 &&
|
||||
+ IN6_IS_ADDR_LINKLOCAL((struct in6_addr *)addr))
|
||||
+ continue;
|
||||
#endif
|
||||
XdmcpRegisterConnection(family, (char *) addr, len);
|
||||
#if defined(IPv6) && defined(AF_INET6)
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:594b70825a2c24863afd7b8dd2a5bc1935807118c6726e1d98396dee44d060f4
|
||||
size 2742707
|
13
tigervnc-1.2.80-fix-int-to-pointer.patch
Normal file
13
tigervnc-1.2.80-fix-int-to-pointer.patch
Normal file
@ -0,0 +1,13 @@
|
||||
Index: unix/xserver/hw/vnc/vncExtInit.cc
|
||||
===================================================================
|
||||
--- xserver/hw/vnc/vncExtInit.cc (revision 5122)
|
||||
+++ xserver/hw/vnc/vncExtInit.cc (working copy)
|
||||
@@ -1068,7 +1068,7 @@
|
||||
{
|
||||
REQUEST(xVncExtApproveConnectReq);
|
||||
REQUEST_SIZE_MATCH(xVncExtApproveConnectReq);
|
||||
- if (queryConnectId == (void*)stuff->opaqueId) {
|
||||
+ if ((CARD32)(long)queryConnectId == stuff->opaqueId) {
|
||||
for (int scr = 0; scr < screenInfo.numScreens; scr++) {
|
||||
if (desktop[scr]) {
|
||||
desktop[scr]->approveConnection(queryConnectId, stuff->approve,
|
3
tigervnc-1.3.0.tar.bz2
Normal file
3
tigervnc-1.3.0.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:61e5a78118c3a4adbc3b3026615a1068aed43839c2ad62815832bbc780f38c5a
|
||||
size 1069481
|
12
tigervnc-newfbsize.patch
Normal file
12
tigervnc-newfbsize.patch
Normal file
@ -0,0 +1,12 @@
|
||||
diff -up a/vncviewer/CConn.cxx.newfbsize b/vncviewer/CConn.cxx
|
||||
--- a/vncviewer/CConn.cxx.newfbsize 2008-10-23 13:00:59.000000000 +0200
|
||||
+++ b/vncviewer/CConn.cxx 2008-10-23 13:01:11.000000000 +0200
|
||||
@@ -327,6 +327,8 @@ void CConn::beginRect(const Rect& r, uns
|
||||
if (encoding != encodingCopyRect) {
|
||||
lastServerEncoding = encoding;
|
||||
}
|
||||
+ if (encoding == pseudoEncodingDesktopSize)
|
||||
+ setDesktopSize( r.width(), r.height() );
|
||||
}
|
||||
|
||||
void CConn::endRect(const Rect& r, int encoding)
|
@ -1,3 +1,9 @@
|
||||
-------------------------------------------------------------------
|
||||
Mon Nov 18 14:05:44 UTC 2013 - msrb@suse.com
|
||||
|
||||
- Update to 1.3.0.
|
||||
- Build xorg-x11-Xvnc package from this sources.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Sep 19 08:08:53 UTC 2012 - werner@suse.de
|
||||
|
||||
|
272
tigervnc.spec
272
tigervnc.spec
@ -14,20 +14,19 @@
|
||||
|
||||
# Please submit bugfixes or comments via http://bugs.opensuse.org/
|
||||
#
|
||||
%define tigervnc 1
|
||||
%bcond_with Xstatic
|
||||
%bcond_without dox
|
||||
|
||||
Name: tigervnc
|
||||
Version: 1.1.0
|
||||
Version: 1.3.0
|
||||
Release: 0
|
||||
License: GPL-2.0 and MIT
|
||||
%if %tigervnc
|
||||
# BuildRequires: xorg-x11-server-sdk Mesa-devel libopenssl-devel gcc-c++ libjpeg-devel
|
||||
Conflicts: tightvnc
|
||||
BuildRequires: xorg-x11-server-sdk Mesa-devel libopenssl-devel gcc-c++ libjpeg-devel fltk-devel
|
||||
BuildRequires: nasm gcc-c++ pkgconfig(xproto) pkgconfig(x11) pkgconfig(xext) pkgconfig(xtst)
|
||||
BuildRequires: autoconf automake libtool binutils-gold
|
||||
BuildRequires: cmake autoconf automake libtool binutils-gold
|
||||
BuildRequires: java-devel jpackage-utils
|
||||
# Because of keytool to build java client
|
||||
BuildRequires: mozilla-nss
|
||||
BuildRequires: xorg-x11-libICE-devel xorg-x11-libSM-devel pkgconfig(libtasn1) pkgconfig(gnutls) libgcrypt-devel libgpg-error-devel pam-devel
|
||||
%if %{with Xstatic}
|
||||
BuildRequires: pkgconfig(fontutil)
|
||||
BuildRequires: pkg-config xmlto pkgconfig(pixman-1) >= 0.15.20 pkgconfig(glproto) pkgconfig(gl) pkgconfig(dri) pkgconfig(openssl)
|
||||
BuildRequires: pkgconfig(fixesproto) >= 4.1 pkgconfig(damageproto) >= 1.1 pkgconfig(xcmiscproto) >= 1.2.0 pkgconfig(xtrans) >= 1.2.2
|
||||
@ -36,167 +35,156 @@ BuildRequires: pkgconfig(xextproto) >= 7.0.99.3 pkgconfig(inputproto) >= 1.9.9
|
||||
BuildRequires: pkgconfig(videoproto) pkgconfig(compositeproto) >= 0.4 pkgconfig(recordproto) >= 1.13.99.1 pkgconfig(scrnsaverproto) >= 1.1
|
||||
BuildRequires: pkgconfig(resourceproto) pkgconfig(xineramaproto) pkgconfig(xkbfile) pkgconfig(xau) pkgconfig(xdmcp) pkgconfig(xfont) >= 1.4.2
|
||||
BuildRequires: pkgconfig(pciaccess) >= 0.8.0
|
||||
%endif %{nil Xstatic}
|
||||
%if %{with dox}
|
||||
BuildRequires: texlive
|
||||
BuildRequires: texlive-latex
|
||||
%if 0%{?suse_version} > 1220
|
||||
BuildRequires: texlive-amsfonts
|
||||
BuildRequires: texlive-cm-super
|
||||
BuildRequires: texlive-ec
|
||||
%endif
|
||||
%endif %{nil with dox}
|
||||
URL: http://sourceforge.net/apps/mediawiki/tigervnc/
|
||||
%else
|
||||
Requires: x11vnc
|
||||
%endif
|
||||
URL: http://sourceforge.net/apps/mediawiki/tigervnc/
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
Group: System/X11/Servers/XF86_4
|
||||
%if %tigervnc
|
||||
Summary: A high-performance, platform-neutral implementation of VNC
|
||||
# _____________*_________*_________*_________*_________*_________*_________*
|
||||
%else
|
||||
Summary: Xvnc wrapper script which makes use of Xvfb/x11vnc
|
||||
%endif
|
||||
%if %tigervnc
|
||||
Source1: http://downloads.sf.net/tigervnc/%name-%version.tar.gz
|
||||
%if %{with Xstatic}
|
||||
Source2: xorg-server-1.9.3.tar.bz2
|
||||
Patch: xorg-server-xdmcp.patch
|
||||
Patch3: xorg-bug38185.patch
|
||||
%endif
|
||||
Patch1: tigervnc-sf3492352.diff
|
||||
Patch2: tigervnc-sf3492503.patch
|
||||
Patch4: tigervnc-sf3493012.patch
|
||||
Patch5: tigervnc-sf3495623.patch
|
||||
%else
|
||||
Source0: Xvnc.pl
|
||||
%endif
|
||||
Source1: tigervnc-1.3.0.tar.bz2
|
||||
Source2: xorg-server-1.13.0.tar.bz2
|
||||
Source3: vnc.xinetd
|
||||
Source4: 10-libvnc.conf
|
||||
Source5: vnc-server.firewall
|
||||
Source6: vnc-httpd.firewall
|
||||
Source7: vnc_inetd_httpd
|
||||
Source8: vnc.reg
|
||||
|
||||
# Tiger vnc patches
|
||||
Patch1: u_tigervnc-1.3.0-fix-use-after-free.patch
|
||||
Patch2: tigervnc-newfbsize.patch
|
||||
|
||||
# Xserver patches
|
||||
Patch10: tigervnc-1.2.80-fix-int-to-pointer.patch
|
||||
Patch11: u_aarch64-support.patch
|
||||
Patch12: N_xorg-server-xdmcp.patch
|
||||
|
||||
%description
|
||||
%if %tigervnc
|
||||
TigerVNC is a high-performance, platform-neutral implementation of VNC (Virtual Network Computing),
|
||||
a client/server application that allows users to launch and interact with graphical applications on remote machines.
|
||||
TigerVNC provides the levels of performance necessary to run 3D and video applications;
|
||||
it attempts to maintain a common look and feel and re-use components, where possible, across the various platforms that it supports.
|
||||
TigerVNC also provides extensions for advanced authentication methods and TLS encryption.
|
||||
%else
|
||||
This is a wrapper script, which makes use of Xvfb/x11vnc to implement
|
||||
a Xvnc server.
|
||||
%endif
|
||||
TigerVNC also provides extensions for advanced authentication methods and TLS encryption.
|
||||
|
||||
%package -n xorg-x11-Xvnc
|
||||
Requires: xinetd
|
||||
Summary: TigerVNC implementation of Xvnc
|
||||
Group: System/X11/Servers/XF86_4
|
||||
|
||||
%description -n xorg-x11-Xvnc
|
||||
This is the TigerVNC implementation of Xvnc.
|
||||
|
||||
%prep
|
||||
%if %tigervnc
|
||||
%setup -T -n %{name}-%{version}/unix/xserver -b1 \
|
||||
%if %{with Xstatic}
|
||||
-b2
|
||||
cp -r -t. ../../../xorg-server-*/*
|
||||
patch -p1 < ../xserver19.patch
|
||||
%patch -p2
|
||||
%patch3 -p1
|
||||
%endif
|
||||
%setup -T -b1 -b2
|
||||
cp -r ../xorg-server-*/* unix/xserver/
|
||||
|
||||
cd ../..
|
||||
%patch1 -p1
|
||||
%patch2 -p1
|
||||
%patch4 -p1
|
||||
%patch5 -p1
|
||||
cd doc
|
||||
mv ft-protocol-problems.txt ft-protocol-problems.eml
|
||||
%endif
|
||||
|
||||
%define xcflags -include $PWD/deprec.h -fuse-linker-plugin
|
||||
%build
|
||||
%if %tigervnc
|
||||
pushd ../..
|
||||
%if %{with dox}
|
||||
cd doc
|
||||
for s in rfbtight
|
||||
do while [[ ! -r "$s.toc" ]] || grep "^No file .*$s\\.toc" "$s.log" && pdflatex "$s.tex"
|
||||
do :
|
||||
done
|
||||
done
|
||||
cd ..
|
||||
%endif %{nil with dox}
|
||||
autoreconf -fi
|
||||
echo>deprec.h '#ifdef __cplusplus
|
||||
#define CDECL118 "C"
|
||||
#else
|
||||
#define CDECL118
|
||||
#endif
|
||||
extern CDECL118 struct hostent *gethostbyname (const char *__name) __attribute__ ((deprecated));
|
||||
#undef __DATE__
|
||||
#undef __TIME__
|
||||
#define __DATE__ "(rpm -qif $0)"
|
||||
#define __TIME__ __DATE__
|
||||
|
||||
'
|
||||
%configure --disable-static --with-system-jpeg --with-system-zlib \
|
||||
CFLAGS="$CFLAGS %{xcflags}" CXXFLAGS="$CXXFLAGS %{xcflags}"
|
||||
make %{?_smp_mflags}
|
||||
%if %{with Xstatic}
|
||||
pushd unix/xserver
|
||||
patch -p1 < ../xserver113.patch
|
||||
%patch10 -p1
|
||||
%patch11 -p1
|
||||
%patch12 -p1
|
||||
popd
|
||||
|
||||
%build
|
||||
# Build all tigervnc
|
||||
cmake -DCMAKE_INSTALL_PREFIX:PATH=%{_prefix}
|
||||
make %{?_smp_mflags}
|
||||
|
||||
# Build Xvnc server
|
||||
pushd unix/xserver
|
||||
autoreconf -fi
|
||||
%configure \
|
||||
--disable-xorg --disable-xnest --disable-xvfb --disable-dmx \
|
||||
--disable-xwin --disable-xephyr --disable-kdrive --with-pic \
|
||||
--disable-static --disable-xinerama \
|
||||
--with-xkb-path="/usr/share/X11/xkb" \
|
||||
--with-xkb-output="/var/lib/xkb/compiled" \
|
||||
--enable-glx --enable-dri --enable-dri2 \
|
||||
--disable-config-dbus \
|
||||
--disable-config-hal \
|
||||
--disable-config-udev \
|
||||
--without-dtrace \
|
||||
--disable-unit-tests \
|
||||
--disable-devel-docs \
|
||||
--with-fontrootdir=/usr/share/fonts \
|
||||
--disable-selective-werror
|
||||
make %{?_smp_mflags}
|
||||
popd
|
||||
|
||||
# Build java client
|
||||
pushd java
|
||||
cmake -DCMAKE_INSTALL_PREFIX:PATH=%{_prefix}
|
||||
make %{?_smp_mflags}
|
||||
popd
|
||||
: ./autogen.sh
|
||||
autoreconf -fiv -Werror
|
||||
%configure --disable-xvfb --disable-xnest --disable-xorg --disable-dmx \
|
||||
--disable-xwin --disable-xephyr --disable-kdrive --with-pic \
|
||||
--disable-static --disable-xinerama \
|
||||
--disable-composite \
|
||||
--with-xkb-path="/usr/share/X11/xkb" \
|
||||
--with-xkb-output="/var/lib/xkb/compiled" \
|
||||
--disable-dri2 \
|
||||
--enable-glx \
|
||||
--disable-config-dbus \
|
||||
--disable-config-hal \
|
||||
--disable-config-udev \
|
||||
--without-dtrace \
|
||||
--with-fontrootdir=/usr/share/fonts
|
||||
%make %{?_smp_mflags}
|
||||
%endif %{nil with Xstatic}
|
||||
%endif %{nil tigervnc}
|
||||
|
||||
%install
|
||||
%if %tigervnc
|
||||
cd ../..
|
||||
%makeinstall
|
||||
%else %{nil tigervnc}
|
||||
mkdir -p $RPM_BUILD_ROOT/usr/bin
|
||||
install -m 755 $RPM_SOURCE_DIR/Xvnc.pl $RPM_BUILD_ROOT/usr/bin/Xvnc
|
||||
%endif %{nil tigervnc}
|
||||
mkdir -p $RPM_BUILD_ROOT/etc/sysconfig/SuSEfirewall2.d/services
|
||||
cat > $RPM_BUILD_ROOT/etc/sysconfig/SuSEfirewall2.d/services/%{name} << EOF
|
||||
## Name: VNC Server
|
||||
## Description: Opens ports for VNC Server
|
||||
TCP="5801 5901"
|
||||
EOF
|
||||
|
||||
%make_install
|
||||
|
||||
pushd unix/xserver
|
||||
%make_install
|
||||
popd
|
||||
|
||||
pushd java
|
||||
mkdir -p $RPM_BUILD_ROOT%{_datadir}/vnc/classes
|
||||
install -m755 VncViewer.jar $RPM_BUILD_ROOT%{_datadir}/vnc/classes
|
||||
install -m644 com/tigervnc/vncviewer/index.vnc $RPM_BUILD_ROOT%{_datadir}/vnc/classes
|
||||
popd
|
||||
|
||||
install -D -m 644 %{SOURCE3} $RPM_BUILD_ROOT/etc/xinetd.d/vnc
|
||||
install -D -m 644 %{SOURCE4} $RPM_BUILD_ROOT/etc/X11/xorg.conf.d/10-libvnc.conf
|
||||
install -D -m 644 %{SOURCE5} $RPM_BUILD_ROOT/etc/sysconfig/SuSEfirewall2.d/services/vnc-server
|
||||
install -D -m 644 %{SOURCE6} $RPM_BUILD_ROOT/etc/sysconfig/SuSEfirewall2.d/services/vnc-httpd
|
||||
install -D -m 755 %{SOURCE7} $RPM_BUILD_ROOT%{_bindir}/vnc_inetd_httpd
|
||||
install -D -m 644 %{SOURCE8} $RPM_BUILD_ROOT/etc/slp.reg.d/vnc.reg
|
||||
|
||||
%find_lang '%{name}'
|
||||
|
||||
%files -f ../../%{name}.lang
|
||||
%files -f %{name}.lang
|
||||
%defattr(-,root,root,-)
|
||||
%{_bindir}/vncviewer
|
||||
%exclude /usr/share/doc/tigervnc-1.3.0
|
||||
%doc LICENCE.TXT
|
||||
%doc README.txt
|
||||
%{_mandir}/man1/vncviewer.1*
|
||||
|
||||
%files -n xorg-x11-Xvnc
|
||||
%defattr(-,root,root)
|
||||
%config /etc/sysconfig/SuSEfirewall2.d/services/%{name}
|
||||
%{_bindir}/*
|
||||
%if %tigervnc
|
||||
%doc %{_mandir}/man1/*
|
||||
%if %{with Xstatic}
|
||||
|
||||
%{_bindir}/Xvnc
|
||||
%{_bindir}/vncconfig
|
||||
%{_bindir}/vncpasswd
|
||||
%{_bindir}/vncserver
|
||||
%{_bindir}/x0vncserver
|
||||
%{_bindir}/vnc_inetd_httpd
|
||||
|
||||
%exclude %{_mandir}/man1/Xserver.1*
|
||||
%{_mandir}/man1/Xvnc.1*
|
||||
%{_mandir}/man1/vncconfig.1*
|
||||
%{_mandir}/man1/vncpasswd.1*
|
||||
%{_mandir}/man1/vncserver.1*
|
||||
%{_mandir}/man1/x0vncserver.1*
|
||||
|
||||
%exclude /usr/%{_lib}/xorg/protocol.txt
|
||||
%exclude /usr/%{_lib}/xorg/modules/extensions/libvnc.la
|
||||
%exclude /usr/%{_lib}/xorg/modules/extensions/libvnc.so
|
||||
%{_libdir}/xorg/modules/extensions/libvnc.so
|
||||
|
||||
%exclude /var/lib/xkb/compiled/README.compiled
|
||||
%endif %{nil Xstatic}
|
||||
|
||||
/etc/sysconfig/SuSEfirewall2.d/services/vnc-server
|
||||
/etc/sysconfig/SuSEfirewall2.d/services/vnc-httpd
|
||||
|
||||
%config(noreplace) /etc/X11/xorg.conf.d/10-libvnc.conf
|
||||
%config(noreplace) /etc/xinetd.d/vnc
|
||||
%dir /etc/slp.reg.d
|
||||
%config(noreplace) /etc/slp.reg.d/vnc.reg
|
||||
|
||||
%exclude /usr/lib/debug/*
|
||||
%exclude /usr/lib/debug/.*
|
||||
%exclude /usr/src/debug
|
||||
%endif
|
||||
%if %{with Xstatic}
|
||||
%doc COPYING
|
||||
%endif %{nil with Xstatic}
|
||||
%doc ../../README.txt ../../LICENCE.TXT
|
||||
%doc ../../doc/ft-protocol-problems.eml ../../doc/realvnc-internals.txt ../../doc/registered-codes.txt
|
||||
%if %{with dox}
|
||||
%doc ../../doc/rfbtight.pdf
|
||||
%else %{nil with dox}
|
||||
%doc ../../doc/rfbtight.tex
|
||||
%endif %{nil with dox}
|
||||
|
||||
%doc java/com/tigervnc/vncviewer/README
|
||||
%{_datadir}/vnc
|
||||
|
||||
%changelog
|
||||
|
60
u_aarch64-support.patch
Normal file
60
u_aarch64-support.patch
Normal file
@ -0,0 +1,60 @@
|
||||
Subject: Basic support for aarch64
|
||||
Author: Andreas Schwab <schwab@suse.de>
|
||||
|
||||
Index: xorg-server-1.13.2/hw/xfree86/os-support/linux/lnx_video.c
|
||||
===================================================================
|
||||
--- xorg-server-1.13.2.orig/hw/xfree86/os-support/linux/lnx_video.c
|
||||
+++ xorg-server-1.13.2/hw/xfree86/os-support/linux/lnx_video.c
|
||||
@@ -58,7 +58,8 @@ static Bool ExtendedEnabled = FALSE;
|
||||
!defined(__sparc__) && \
|
||||
!defined(__mips__) && \
|
||||
!defined(__nds32__) && \
|
||||
- !defined(__arm__)
|
||||
+ !defined(__arm__) && \
|
||||
+ !defined(__aarch64__)
|
||||
|
||||
/*
|
||||
* Due to conflicts with "compiler.h", don't rely on <sys/io.h> to declare
|
||||
@@ -511,7 +512,7 @@ xf86EnableIO(void)
|
||||
#endif
|
||||
}
|
||||
close(fd);
|
||||
-#elif !defined(__mc68000__) && !defined(__sparc__) && !defined(__mips__) && !defined(__sh__) && !defined(__hppa__) && !defined(__s390__) && !defined(__arm__) && !defined(__m32r__) && !defined(__nds32__)
|
||||
+#elif !defined(__mc68000__) && !defined(__sparc__) && !defined(__mips__) && !defined(__sh__) && !defined(__hppa__) && !defined(__s390__) && !defined(__arm__) && !defined(__m32r__) && !defined(__nds32__) && !defined(__aarch64__)
|
||||
if (ioperm(0, 1024, 1) || iopl(3)) {
|
||||
if (errno == ENODEV)
|
||||
ErrorF("xf86EnableIOPorts: no I/O ports found\n");
|
||||
@@ -540,7 +541,7 @@ xf86DisableIO(void)
|
||||
#if defined(__powerpc__)
|
||||
munmap(ioBase, 0x20000);
|
||||
ioBase = NULL;
|
||||
-#elif !defined(__mc68000__) && !defined(__sparc__) && !defined(__mips__) && !defined(__sh__) && !defined(__hppa__) && !defined(__arm__) && !defined(__s390__) && !defined(__m32r__) && !defined(__nds32__)
|
||||
+#elif !defined(__mc68000__) && !defined(__sparc__) && !defined(__mips__) && !defined(__sh__) && !defined(__hppa__) && !defined(__arm__) && !defined(__s390__) && !defined(__m32r__) && !defined(__nds32__) && !defined(__aarch64__)
|
||||
iopl(0);
|
||||
ioperm(0, 1024, 0);
|
||||
#endif
|
||||
Index: xorg-server-1.13.2/include/servermd.h
|
||||
===================================================================
|
||||
--- xorg-server-1.13.2.orig/include/servermd.h
|
||||
+++ xorg-server-1.13.2/include/servermd.h
|
||||
@@ -286,6 +286,20 @@ SOFTWARE.
|
||||
#define GLYPHPADBYTES 4
|
||||
#endif /* linux/s390 */
|
||||
|
||||
+#ifdef __aarch64__
|
||||
+
|
||||
+#ifdef __AARCH64EL__
|
||||
+#define IMAGE_BYTE_ORDER LSBFirst
|
||||
+#define BITMAP_BIT_ORDER LSBFirst
|
||||
+#endif
|
||||
+#ifdef __AARCH64EB__
|
||||
+#define IMAGE_BYTE_ORDER MSBFirst
|
||||
+#define BITMAP_BIT_ORDER MSBFirst
|
||||
+#endif
|
||||
+#define GLYPHPADBYTES 4
|
||||
+
|
||||
+#endif /* __aarch64__ */
|
||||
+
|
||||
/* size of buffer to use with GetImage, measured in bytes. There's obviously
|
||||
* a trade-off between the amount of heap used and the number of times the
|
||||
* ddx routine has to be called.
|
115
u_tigervnc-1.3.0-fix-use-after-free.patch
Normal file
115
u_tigervnc-1.3.0-fix-use-after-free.patch
Normal file
@ -0,0 +1,115 @@
|
||||
Author: Michal Srb <msrb@suse.com>
|
||||
Subject: Fix use after free in ZRLEEncoder.
|
||||
Patch-Mainline: To be upstreamed
|
||||
References: bnc#840433
|
||||
|
||||
There is use after free crash when client using zrle disconnects:
|
||||
ZRLEEncoder contains zos variable (rdr::ZlibOutStream) and mos variable (pointer to rdr::MemOutStream).
|
||||
mos is always allocated in constructor (it could be a copy of static sharedMos pointer if sharedMos != 0, but it is always 0).
|
||||
When ZRLEEncoder::writeRect is called, any of zrleEncode* functions sets mos as an underlying stream of zos.
|
||||
When ZRLEEncoder is destructed, mos is deleted (sharedMos is always 0), then zos is implicitly destructed, but zos accesses it's underlying stream in it's destructor!
|
||||
|
||||
We need to destruct mos first and zos second when ZRLEEncoder is destructed.
|
||||
As sharedMos is never used, we can remove that, simplify ZRLEEncoder and turn zos into a member variable same as mos. They will be both implicitly destructed in reverse order of declaration.
|
||||
|
||||
diff -ur tigervnc-1.3.0-orig/common/rfb/ZRLEEncoder.cxx tigervnc-1.3.0/common/rfb/ZRLEEncoder.cxx
|
||||
--- tigervnc-1.3.0-orig/common/rfb/ZRLEEncoder.cxx 2013-09-17 00:18:28.557911306 +0300
|
||||
+++ tigervnc-1.3.0/common/rfb/ZRLEEncoder.cxx 2013-09-17 00:19:57.487915741 +0300
|
||||
@@ -26,7 +26,6 @@
|
||||
|
||||
using namespace rfb;
|
||||
|
||||
-rdr::MemOutStream* ZRLEEncoder::sharedMos = 0;
|
||||
int ZRLEEncoder::maxLen = 4097 * 1024; // enough for width 16384 32-bit pixels
|
||||
|
||||
IntParameter zlibLevel("ZlibLevel","Zlib compression level",-1);
|
||||
@@ -55,33 +54,27 @@
|
||||
}
|
||||
|
||||
ZRLEEncoder::ZRLEEncoder(SMsgWriter* writer_)
|
||||
- : writer(writer_), zos(0,0,zlibLevel)
|
||||
+ : writer(writer_), zos(0,0,zlibLevel), mos(129*1024)
|
||||
{
|
||||
- if (sharedMos)
|
||||
- mos = sharedMos;
|
||||
- else
|
||||
- mos = new rdr::MemOutStream(129*1024);
|
||||
}
|
||||
|
||||
ZRLEEncoder::~ZRLEEncoder()
|
||||
{
|
||||
- if (!sharedMos)
|
||||
- delete mos;
|
||||
}
|
||||
|
||||
bool ZRLEEncoder::writeRect(const Rect& r, TransImageGetter* ig, Rect* actual)
|
||||
{
|
||||
rdr::U8* imageBuf = writer->getImageBuf(64 * 64 * 4 + 4);
|
||||
- mos->clear();
|
||||
+ mos.clear();
|
||||
bool wroteAll = true;
|
||||
*actual = r;
|
||||
|
||||
switch (writer->bpp()) {
|
||||
case 8:
|
||||
- wroteAll = zrleEncode8(r, mos, &zos, imageBuf, maxLen, actual, ig);
|
||||
+ wroteAll = zrleEncode8(r, &mos, &zos, imageBuf, maxLen, actual, ig);
|
||||
break;
|
||||
case 16:
|
||||
- wroteAll = zrleEncode16(r, mos, &zos, imageBuf, maxLen, actual, ig);
|
||||
+ wroteAll = zrleEncode16(r, &mos, &zos, imageBuf, maxLen, actual, ig);
|
||||
break;
|
||||
case 32:
|
||||
{
|
||||
@@ -94,16 +87,16 @@
|
||||
if ((fitsInLS3Bytes && pf.isLittleEndian()) ||
|
||||
(fitsInMS3Bytes && pf.isBigEndian()))
|
||||
{
|
||||
- wroteAll = zrleEncode24A(r, mos, &zos, imageBuf, maxLen, actual, ig);
|
||||
+ wroteAll = zrleEncode24A(r, &mos, &zos, imageBuf, maxLen, actual, ig);
|
||||
}
|
||||
else if ((fitsInLS3Bytes && pf.isBigEndian()) ||
|
||||
(fitsInMS3Bytes && pf.isLittleEndian()))
|
||||
{
|
||||
- wroteAll = zrleEncode24B(r, mos, &zos, imageBuf, maxLen, actual, ig);
|
||||
+ wroteAll = zrleEncode24B(r, &mos, &zos, imageBuf, maxLen, actual, ig);
|
||||
}
|
||||
else
|
||||
{
|
||||
- wroteAll = zrleEncode32(r, mos, &zos, imageBuf, maxLen, actual, ig);
|
||||
+ wroteAll = zrleEncode32(r, &mos, &zos, imageBuf, maxLen, actual, ig);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -111,8 +104,8 @@
|
||||
|
||||
writer->startRect(*actual, encodingZRLE);
|
||||
rdr::OutStream* os = writer->getOutStream();
|
||||
- os->writeU32(mos->length());
|
||||
- os->writeBytes(mos->data(), mos->length());
|
||||
+ os->writeU32(mos.length());
|
||||
+ os->writeBytes(mos.data(), mos.length());
|
||||
writer->endRect();
|
||||
return wroteAll;
|
||||
}
|
||||
diff -ur tigervnc-1.3.0-orig/common/rfb/ZRLEEncoder.h tigervnc-1.3.0/common/rfb/ZRLEEncoder.h
|
||||
--- tigervnc-1.3.0-orig/common/rfb/ZRLEEncoder.h 2013-09-17 00:18:28.558911306 +0300
|
||||
+++ tigervnc-1.3.0/common/rfb/ZRLEEncoder.h 2013-09-17 00:20:34.372917581 +0300
|
||||
@@ -38,16 +38,11 @@
|
||||
// width, in this example about 128 bytes).
|
||||
static void setMaxLen(int m) { maxLen = m; }
|
||||
|
||||
- // setSharedMos() sets a MemOutStream to be shared amongst all
|
||||
- // ZRLEEncoders. Should be called before any ZRLEEncoders are created.
|
||||
- static void setSharedMos(rdr::MemOutStream* mos_) { sharedMos = mos_; }
|
||||
-
|
||||
private:
|
||||
ZRLEEncoder(SMsgWriter* writer);
|
||||
SMsgWriter* writer;
|
||||
+ rdr::MemOutStream mos;
|
||||
rdr::ZlibOutStream zos;
|
||||
- rdr::MemOutStream* mos;
|
||||
- static rdr::MemOutStream* sharedMos;
|
||||
static int maxLen;
|
||||
};
|
||||
}
|
4
vnc-httpd.firewall
Normal file
4
vnc-httpd.firewall
Normal file
@ -0,0 +1,4 @@
|
||||
## Name: VNC mini-HTTP server
|
||||
## Description: Opens the VNC HTTP ports so that browsers can connect.
|
||||
|
||||
TCP="5800:5899"
|
4
vnc-server.firewall
Normal file
4
vnc-server.firewall
Normal file
@ -0,0 +1,4 @@
|
||||
## Name: VNC
|
||||
## Description: Opens VNC server ports so that viewers can connect.
|
||||
|
||||
TCP="5900:5999"
|
42
vnc.reg
Normal file
42
vnc.reg
Normal file
@ -0,0 +1,42 @@
|
||||
#############################################################################
|
||||
#
|
||||
# OpenSLP registration file
|
||||
#
|
||||
# register VNC remote logins via kdm
|
||||
# You need also to allow remote logins
|
||||
#
|
||||
#############################################################################
|
||||
|
||||
# Register VNC service for krdc (KDE VNC client in kdenetwork)
|
||||
service:remotedesktop.kde:vnc://$HOSTNAME:5901,en,65535
|
||||
tcp-port=5901
|
||||
description=VNC remote login [1024x768]
|
||||
|
||||
# Register VNC service for krdc (KDE VNC client in kdenetwork)
|
||||
service:remotedesktop.kde:vnc://$HOSTNAME:5902,en,65535
|
||||
tcp-port=5902
|
||||
description=VNC remote login [1280x1024]
|
||||
|
||||
# Register VNC service for krdc (KDE VNC client in kdenetwork)
|
||||
service:remotedesktop.kde:vnc://$HOSTNAME:5903,en,65535
|
||||
tcp-port=5903
|
||||
description=VNC remote login [1600x1200]
|
||||
|
||||
# Register VNC service for Java clients
|
||||
# Can be used with every Web browser with enabled Java
|
||||
service:remotedesktop.java:http://$HOSTNAME:5801,en,65535
|
||||
tcp-port=5801
|
||||
description=VNC remote login [1024x768]
|
||||
|
||||
# Register VNC service for Java clients
|
||||
# Can be used with every Web browser with enabled Java
|
||||
service:remotedesktop.java:http://$HOSTNAME:5802,en,65535
|
||||
tcp-port=5802
|
||||
description=VNC remote login [1280x1024]
|
||||
|
||||
# Register VNC service for Java clients
|
||||
# Can be used with every Web browser with enabled Java
|
||||
service:remotedesktop.java:http://$HOSTNAME:5803,en,65535
|
||||
tcp-port=5803
|
||||
description=VNC remote login [1600x1200]
|
||||
|
90
vnc.xinetd
Normal file
90
vnc.xinetd
Normal file
@ -0,0 +1,90 @@
|
||||
# default: off
|
||||
# description: This serves out a VNC connection which starts at a KDM login \
|
||||
# prompt. This VNC connection has a resolution of 1024x768, 16bit depth.
|
||||
service vnc1
|
||||
{
|
||||
type = UNLISTED
|
||||
port = 5901
|
||||
socket_type = stream
|
||||
protocol = tcp
|
||||
wait = no
|
||||
user = nobody
|
||||
server = /usr/bin/Xvnc
|
||||
server_args = -noreset -inetd -once -query localhost -geometry 1024x768 -depth 16 -securitytypes none
|
||||
disable = yes
|
||||
}
|
||||
# default: off
|
||||
# description: This serves out a VNC connection which starts at a KDM login \
|
||||
# prompt. This VNC connection has a resolution of 1280x1024, 16bit depth.
|
||||
service vnc2
|
||||
{
|
||||
type = UNLISTED
|
||||
port = 5902
|
||||
socket_type = stream
|
||||
protocol = tcp
|
||||
wait = no
|
||||
user = nobody
|
||||
server = /usr/bin/Xvnc
|
||||
server_args = -noreset -inetd -once -query localhost -geometry 1280x1024 -depth 16 -securitytypes none
|
||||
disable = yes
|
||||
}
|
||||
# default: off
|
||||
# description: This serves out a VNC connection which starts at a KDM login \
|
||||
# prompt. This VNC connection has a resolution of 1600x1200, 16bit depth.
|
||||
service vnc3
|
||||
{
|
||||
type = UNLISTED
|
||||
port = 5903
|
||||
socket_type = stream
|
||||
protocol = tcp
|
||||
wait = no
|
||||
user = nobody
|
||||
server = /usr/bin/Xvnc
|
||||
server_args = -noreset -inetd -once -query localhost -geometry 1600x1200 -depth 16 -securitytypes none
|
||||
disable = yes
|
||||
}
|
||||
# default: off
|
||||
# description: This serves out the vncviewer Java applet for the VNC \
|
||||
# server running on port 5901, (vnc port 1).
|
||||
service vnchttpd1
|
||||
{
|
||||
type = UNLISTED
|
||||
port = 5801
|
||||
socket_type = stream
|
||||
protocol = tcp
|
||||
wait = no
|
||||
user = nobody
|
||||
server = /usr/bin/vnc_inetd_httpd
|
||||
server_args = 1024 768 5901
|
||||
disable = yes
|
||||
}
|
||||
# default: off
|
||||
# description: This serves out the vncviewer Java applet for the VNC \
|
||||
# server running on port 5902, (vnc port 2).
|
||||
service vnchttpd2
|
||||
{
|
||||
type = UNLISTED
|
||||
port = 5802
|
||||
socket_type = stream
|
||||
protocol = tcp
|
||||
wait = no
|
||||
user = nobody
|
||||
server = /usr/bin/vnc_inetd_httpd
|
||||
server_args = 1280 1024 5902
|
||||
disable = yes
|
||||
}
|
||||
# default: off
|
||||
# description: This serves out the vncviewer Java applet for the VNC \
|
||||
# server running on port 5902, (vnc port 3).
|
||||
service vnchttpd3
|
||||
{
|
||||
type = UNLISTED
|
||||
port = 5803
|
||||
socket_type = stream
|
||||
protocol = tcp
|
||||
wait = no
|
||||
user = nobody
|
||||
server = /usr/bin/vnc_inetd_httpd
|
||||
server_args = 1600 1200 5903
|
||||
disable = yes
|
||||
}
|
60
vnc_inetd_httpd
Normal file
60
vnc_inetd_httpd
Normal file
@ -0,0 +1,60 @@
|
||||
#!/bin/bash
|
||||
read request url httptype || exit 0
|
||||
url="${url/
/}"
|
||||
httptype="${httptype/
/}"
|
||||
|
||||
width=$1
|
||||
height=$2
|
||||
port=$3
|
||||
|
||||
if [ "x$httptype" != "x" ]; then
|
||||
line="x"
|
||||
while [ -n "$line" ]; do
|
||||
read line || exit 0
|
||||
line="${line/
/}"
|
||||
done
|
||||
fi
|
||||
case "$url" in
|
||||
/)
|
||||
# We need the size of the display for the current applet.
|
||||
# The VNC menubar is 20 pixels high ...
|
||||
height=$((height+20))
|
||||
ctype="text/html"
|
||||
content="
|
||||
<HTML><HEAD><TITLE>Remote Desktop</TITLE></HEAD>
|
||||
<BODY>
|
||||
<APPLET CODE=VncViewer.class ARCHIVE=VncViewer.jar WIDTH=$width HEIGHT=$height>
|
||||
<param name=PORT value=$port>
|
||||
</APPLET>
|
||||
</BODY></HTML>"
|
||||
;;
|
||||
*.jar|*.class)
|
||||
# Use basename to make sure we have just a filename, not ../../...
|
||||
url=${url/.*\/}
|
||||
ctype="application/octet-stream"
|
||||
cfile="/usr/share/vnc/classes/$url"
|
||||
content="FILE"
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ "x$httptype" != "x" ]; then
|
||||
echo "HTTP/1.0 200 OK"
|
||||
echo "Content-Type: $ctype"
|
||||
if [ "$content" == "FILE" ]; then
|
||||
clen=`wc -c "$cfile"`
|
||||
else
|
||||
clen=`echo "$content"|wc -c`
|
||||
fi
|
||||
echo "Content-Length: $clen"
|
||||
echo "Connection: close"
|
||||
echo
|
||||
fi
|
||||
|
||||
if [ "$request" == "GET" ]; then
|
||||
if [ "$content" == "FILE" ]; then
|
||||
cat "$cfile"
|
||||
else
|
||||
echo "$content"
|
||||
fi
|
||||
fi
|
||||
exit 0
|
3
xorg-server-1.13.0.tar.bz2
Normal file
3
xorg-server-1.13.0.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:a751cae62dad1f8032613bef96a758c2eceacc0425533e8ee446fc53207174c4
|
||||
size 3713571
|
@ -1,28 +0,0 @@
|
||||
--- unix/xserver/os/access.c 2012-02-24 15:32:16.683508316 +0100
|
||||
+++ unix/xserver/os/access.c 2012-02-24 15:32:16.899508318 +0100
|
||||
@@ -802,7 +802,9 @@
|
||||
|
||||
/*
|
||||
* ignore 'localhost' entries as they're not useful
|
||||
- * on the other end of the wire
|
||||
+ * on the other end of the wire and because on hosts
|
||||
+ * with shared home dirs they'll result in conflic
|
||||
+ * entries in ~/.Xauthority
|
||||
*/
|
||||
if (ifr->ifa_flags & IFF_LOOPBACK)
|
||||
continue;
|
||||
@@ -825,6 +827,14 @@
|
||||
else if (family == FamilyInternet6 &&
|
||||
IN6_IS_ADDR_LOOPBACK((struct in6_addr *)addr))
|
||||
continue;
|
||||
+
|
||||
+ /* Ignore IPv6 link local addresses (fe80::/10), because
|
||||
+ * they need a scope identifier, which we have no way
|
||||
+ * of telling to the other end.
|
||||
+ */
|
||||
+ if (family == FamilyInternet6 &&
|
||||
+ IN6_IS_ADDR_LINKLOCAL((struct in6_addr *)addr))
|
||||
+ continue;
|
||||
#endif
|
||||
XdmcpRegisterConnection(family, (char *)addr, len);
|
||||
#if defined(IPv6) && defined(AF_INET6)
|
Loading…
Reference in New Issue
Block a user