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
|
Wed Sep 19 08:08:53 UTC 2012 - werner@suse.de
|
||||||
|
|
||||||
|
252
tigervnc.spec
252
tigervnc.spec
@ -14,20 +14,19 @@
|
|||||||
|
|
||||||
# Please submit bugfixes or comments via http://bugs.opensuse.org/
|
# Please submit bugfixes or comments via http://bugs.opensuse.org/
|
||||||
#
|
#
|
||||||
%define tigervnc 1
|
|
||||||
%bcond_with Xstatic
|
|
||||||
%bcond_without dox
|
|
||||||
|
|
||||||
Name: tigervnc
|
Name: tigervnc
|
||||||
Version: 1.1.0
|
Version: 1.3.0
|
||||||
Release: 0
|
Release: 0
|
||||||
License: GPL-2.0 and MIT
|
License: GPL-2.0 and MIT
|
||||||
%if %tigervnc
|
Conflicts: tightvnc
|
||||||
# BuildRequires: xorg-x11-server-sdk Mesa-devel libopenssl-devel gcc-c++ libjpeg-devel
|
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: 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
|
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: pkgconfig(fontutil)
|
||||||
BuildRequires: pkg-config xmlto pkgconfig(pixman-1) >= 0.15.20 pkgconfig(glproto) pkgconfig(gl) pkgconfig(dri) pkgconfig(openssl)
|
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
|
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(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(resourceproto) pkgconfig(xineramaproto) pkgconfig(xkbfile) pkgconfig(xau) pkgconfig(xdmcp) pkgconfig(xfont) >= 1.4.2
|
||||||
BuildRequires: pkgconfig(pciaccess) >= 0.8.0
|
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/
|
URL: http://sourceforge.net/apps/mediawiki/tigervnc/
|
||||||
%else
|
|
||||||
Requires: x11vnc
|
|
||||||
%endif
|
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||||
Group: System/X11/Servers/XF86_4
|
Group: System/X11/Servers/XF86_4
|
||||||
%if %tigervnc
|
|
||||||
Summary: A high-performance, platform-neutral implementation of VNC
|
Summary: A high-performance, platform-neutral implementation of VNC
|
||||||
# _____________*_________*_________*_________*_________*_________*_________*
|
Source1: tigervnc-1.3.0.tar.bz2
|
||||||
%else
|
Source2: xorg-server-1.13.0.tar.bz2
|
||||||
Summary: Xvnc wrapper script which makes use of Xvfb/x11vnc
|
Source3: vnc.xinetd
|
||||||
%endif
|
Source4: 10-libvnc.conf
|
||||||
%if %tigervnc
|
Source5: vnc-server.firewall
|
||||||
Source1: http://downloads.sf.net/tigervnc/%name-%version.tar.gz
|
Source6: vnc-httpd.firewall
|
||||||
%if %{with Xstatic}
|
Source7: vnc_inetd_httpd
|
||||||
Source2: xorg-server-1.9.3.tar.bz2
|
Source8: vnc.reg
|
||||||
Patch: xorg-server-xdmcp.patch
|
|
||||||
Patch3: xorg-bug38185.patch
|
# Tiger vnc patches
|
||||||
%endif
|
Patch1: u_tigervnc-1.3.0-fix-use-after-free.patch
|
||||||
Patch1: tigervnc-sf3492352.diff
|
Patch2: tigervnc-newfbsize.patch
|
||||||
Patch2: tigervnc-sf3492503.patch
|
|
||||||
Patch4: tigervnc-sf3493012.patch
|
# Xserver patches
|
||||||
Patch5: tigervnc-sf3495623.patch
|
Patch10: tigervnc-1.2.80-fix-int-to-pointer.patch
|
||||||
%else
|
Patch11: u_aarch64-support.patch
|
||||||
Source0: Xvnc.pl
|
Patch12: N_xorg-server-xdmcp.patch
|
||||||
%endif
|
|
||||||
|
|
||||||
%description
|
%description
|
||||||
%if %tigervnc
|
|
||||||
TigerVNC is a high-performance, platform-neutral implementation of VNC (Virtual Network Computing),
|
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.
|
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;
|
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.
|
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.
|
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
|
%package -n xorg-x11-Xvnc
|
||||||
a Xvnc server.
|
Requires: xinetd
|
||||||
%endif
|
Summary: TigerVNC implementation of Xvnc
|
||||||
|
Group: System/X11/Servers/XF86_4
|
||||||
|
|
||||||
|
%description -n xorg-x11-Xvnc
|
||||||
|
This is the TigerVNC implementation of Xvnc.
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
%if %tigervnc
|
%setup -T -b1 -b2
|
||||||
%setup -T -n %{name}-%{version}/unix/xserver -b1 \
|
cp -r ../xorg-server-*/* unix/xserver/
|
||||||
%if %{with Xstatic}
|
|
||||||
-b2
|
|
||||||
cp -r -t. ../../../xorg-server-*/*
|
|
||||||
patch -p1 < ../xserver19.patch
|
|
||||||
%patch -p2
|
|
||||||
%patch3 -p1
|
|
||||||
%endif
|
|
||||||
|
|
||||||
cd ../..
|
|
||||||
%patch1 -p1
|
%patch1 -p1
|
||||||
%patch2 -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
|
pushd unix/xserver
|
||||||
%build
|
patch -p1 < ../xserver113.patch
|
||||||
%if %tigervnc
|
%patch10 -p1
|
||||||
pushd ../..
|
%patch11 -p1
|
||||||
%if %{with dox}
|
%patch12 -p1
|
||||||
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}
|
|
||||||
popd
|
popd
|
||||||
: ./autogen.sh
|
|
||||||
autoreconf -fiv -Werror
|
%build
|
||||||
%configure --disable-xvfb --disable-xnest --disable-xorg --disable-dmx \
|
# 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-xwin --disable-xephyr --disable-kdrive --with-pic \
|
||||||
--disable-static --disable-xinerama \
|
--disable-static --disable-xinerama \
|
||||||
--disable-composite \
|
|
||||||
--with-xkb-path="/usr/share/X11/xkb" \
|
--with-xkb-path="/usr/share/X11/xkb" \
|
||||||
--with-xkb-output="/var/lib/xkb/compiled" \
|
--with-xkb-output="/var/lib/xkb/compiled" \
|
||||||
--disable-dri2 \
|
--enable-glx --enable-dri --enable-dri2 \
|
||||||
--enable-glx \
|
|
||||||
--disable-config-dbus \
|
--disable-config-dbus \
|
||||||
--disable-config-hal \
|
--disable-config-hal \
|
||||||
--disable-config-udev \
|
--disable-config-udev \
|
||||||
--without-dtrace \
|
--without-dtrace \
|
||||||
--with-fontrootdir=/usr/share/fonts
|
--disable-unit-tests \
|
||||||
%make %{?_smp_mflags}
|
--disable-devel-docs \
|
||||||
%endif %{nil with Xstatic}
|
--with-fontrootdir=/usr/share/fonts \
|
||||||
%endif %{nil tigervnc}
|
--disable-selective-werror
|
||||||
|
make %{?_smp_mflags}
|
||||||
|
popd
|
||||||
|
|
||||||
|
# Build java client
|
||||||
|
pushd java
|
||||||
|
cmake -DCMAKE_INSTALL_PREFIX:PATH=%{_prefix}
|
||||||
|
make %{?_smp_mflags}
|
||||||
|
popd
|
||||||
|
|
||||||
%install
|
%install
|
||||||
%if %tigervnc
|
|
||||||
cd ../..
|
%make_install
|
||||||
%makeinstall
|
|
||||||
%else %{nil tigervnc}
|
pushd unix/xserver
|
||||||
mkdir -p $RPM_BUILD_ROOT/usr/bin
|
%make_install
|
||||||
install -m 755 $RPM_SOURCE_DIR/Xvnc.pl $RPM_BUILD_ROOT/usr/bin/Xvnc
|
popd
|
||||||
%endif %{nil tigervnc}
|
|
||||||
mkdir -p $RPM_BUILD_ROOT/etc/sysconfig/SuSEfirewall2.d/services
|
pushd java
|
||||||
cat > $RPM_BUILD_ROOT/etc/sysconfig/SuSEfirewall2.d/services/%{name} << EOF
|
mkdir -p $RPM_BUILD_ROOT%{_datadir}/vnc/classes
|
||||||
## Name: VNC Server
|
install -m755 VncViewer.jar $RPM_BUILD_ROOT%{_datadir}/vnc/classes
|
||||||
## Description: Opens ports for VNC Server
|
install -m644 com/tigervnc/vncviewer/index.vnc $RPM_BUILD_ROOT%{_datadir}/vnc/classes
|
||||||
TCP="5801 5901"
|
popd
|
||||||
EOF
|
|
||||||
|
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}'
|
%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)
|
%defattr(-,root,root)
|
||||||
%config /etc/sysconfig/SuSEfirewall2.d/services/%{name}
|
|
||||||
%{_bindir}/*
|
%{_bindir}/Xvnc
|
||||||
%if %tigervnc
|
%{_bindir}/vncconfig
|
||||||
%doc %{_mandir}/man1/*
|
%{_bindir}/vncpasswd
|
||||||
%if %{with Xstatic}
|
%{_bindir}/vncserver
|
||||||
|
%{_bindir}/x0vncserver
|
||||||
|
%{_bindir}/vnc_inetd_httpd
|
||||||
|
|
||||||
%exclude %{_mandir}/man1/Xserver.1*
|
%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/protocol.txt
|
||||||
%exclude /usr/%{_lib}/xorg/modules/extensions/libvnc.la
|
%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
|
%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/lib/debug/.*
|
%exclude /usr/lib/debug/.*
|
||||||
%exclude /usr/src/debug
|
%exclude /usr/src/debug
|
||||||
%endif
|
|
||||||
%if %{with Xstatic}
|
%doc java/com/tigervnc/vncviewer/README
|
||||||
%doc COPYING
|
%{_datadir}/vnc
|
||||||
%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}
|
|
||||||
|
|
||||||
%changelog
|
%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