Accepting request 107750 from home:yecril71pl:branches:X11:XOrg

This is former Xvnc but rebuilt to use dynamic server link and containing untested patches.  Handle with care.

OBS-URL: https://build.opensuse.org/request/show/107750
OBS-URL: https://build.opensuse.org/package/show/X11:XOrg/tigervnc?expand=0&rev=1
This commit is contained in:
Stefan Dirsch 2012-03-07 09:44:34 +00:00 committed by Git OBS Bridge
commit f264e6c6cd
11 changed files with 837 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -0,0 +1,23 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
.osc

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:594b70825a2c24863afd7b8dd2a5bc1935807118c6726e1d98396dee44d060f4
size 2742707

15
tigervnc-sf3492352.diff Normal file
View File

@ -0,0 +1,15 @@
diff -aur o/doc/rfbtight.tex n/doc/rfbtight.tex
--- o/doc/rfbtight.tex 2011-08-09 23:16:48.000000000 +0200
+++ n/doc/rfbtight.tex 2012-02-23 19:45:07.473906253 +0100
@@ -4,8 +4,9 @@
\setlength{\parindent}{0pt}
\setlength{\parskip}{1ex plus 0.5ex minus 0.2ex}
-\newcommand{\typestr}[1]{\textit{#1}}
-\newcommand{\literal}[1]{\textit{\textbf{#1}}}
+\newcommand\standout{\hspace{0pt plus4em}}
+\newcommand{\typestr}[1]{\standout\hspace*{0pt}\textbf{#1}\standout}
+\newcommand{\literal}[1]{\standout\hspace*{0pt}\textit{\textbf{#1}}\standout}
\begin{document}

62
tigervnc-sf3492503.patch Normal file
View File

@ -0,0 +1,62 @@
--- o/configure.ac 2011-08-09 23:16:48.000000000 +0200
+++ n/configure.ac 2012-02-24 00:50:00.998676744 +0100
@@ -1,8 +1,8 @@
dnl Process this file with autoconf to produce a configure script.
-AC_PREREQ([2.57])
+AC_PREREQ([2.68])
dnl Modify also RCVERSION variable when modifying release
-AC_INIT([tigervnc], [1.1.0], [http://www.tigervnc.org])
+AC_INIT([tigervnc],[1.1.0],[http://www.tigervnc.org])
RCVERSION="1,1,0,0"
AC_SUBST([RCVERSION])
@@ -98,17 +98,17 @@
SAVE_CPPFLAGS=${CPPFLAGS}
CPPFLAGS="${CPPFLAGS} ${GNUTLS_CFLAGS}"
AC_MSG_CHECKING([for GnuTLS library])
- AC_LINK_IFELSE(AC_LANG_CALL([], gnutls_global_init),
+ AC_LINK_IFELSE([AC_LANG_CALL([], gnutls_global_init)],
[GNUTLS_LIBS=${GNUTLS_LDFLAGS}
AC_DEFINE(HAVE_GNUTLS, 1, [Is gnutls present? ])
AC_MSG_RESULT(yes)], AC_MSG_RESULT(no))
AC_MSG_CHECKING([for gnutls_transport_set_global_errno() function])
- AC_LINK_IFELSE(AC_LANG_CALL([], gnutls_transport_set_global_errno),
+ AC_LINK_IFELSE([AC_LANG_CALL([], gnutls_transport_set_global_errno)],
AC_MSG_RESULT(yes),
[AC_DEFINE(HAVE_OLD_GNUTLS, 1, [Does gnutls lack the gnutls_transport_set_global_errno() function? ])
AC_MSG_RESULT(no)])
AC_MSG_CHECKING([for gnutls_x509_crt_print() function])
- AC_LINK_IFELSE(AC_LANG_CALL([], gnutls_x509_crt_print),
+ AC_LINK_IFELSE([AC_LANG_CALL([], gnutls_x509_crt_print)],
[AC_DEFINE(HAVE_GNUTLS_X509_CRT_PRINT, 1, [Is the gnutls_x509_crt_print() function present? ])
AC_MSG_RESULT(yes)],
AC_MSG_RESULT(no))
@@ -172,13 +172,10 @@
dnl gethostbyname, inet_addr, htons etc. Check if it's necessary.
dnl NOTE: Did not want to use AC_SEARCH_LIBS which would add
dnl -lbsd to LIBS. We set INET_LIB instead.
-AC_LANG_SAVE
-AC_LANG_C
AC_CHECK_FUNC(gethostbyname,INET_LIB_REQ=,INET_LIB_REQ=yes)
if test "$INET_LIB_REQ" = yes; then
AC_CHECK_LIB(bsd,gethostbyname,INET_LIB=-lbsd,INET_LIB=)
fi
-AC_LANG_RESTORE
AC_SUBST(INET_LIB)
AC_CHECK_FUNC(setenv, AC_DEFINE([HAVE_SETENV], [1], [Is setenv() present?]))
@@ -240,7 +237,7 @@
AC_CONFIG_FILES([makemacpkg:release/makemacpkg.in])
AC_CONFIG_FILES([maketarball:release/maketarball.in])
-AC_OUTPUT([
+AC_CONFIG_FILES([
Makefile
common/Makefile
common/os/Makefile
@@ -262,3 +259,4 @@
win/resdefs.h
po/Makefile.in
])
+AC_OUTPUT

143
tigervnc-sf3493012.patch Normal file
View File

@ -0,0 +1,143 @@
--- o/LICENCE.TXT 2011-08-09 23:16:48.000000000 +0200
+++ n/LICENCE.TXT 2010-09-08 17:52:33.000000000 +0200
@@ -1,12 +1,12 @@
- GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
- 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
- Preamble
+ Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
@@ -15,7 +15,7 @@
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.) You can apply it to
+the GNU Lesser General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
@@ -55,8 +55,8 @@
The precise terms and conditions for copying, distribution and
modification follow.
-
- GNU GENERAL PUBLIC LICENSE
+
+ GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
@@ -110,7 +110,7 @@
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
-
+
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
@@ -168,7 +168,7 @@
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
-
+
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
@@ -225,7 +225,7 @@
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
-
+
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
@@ -255,7 +255,7 @@
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
- NO WARRANTY
+ NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
@@ -277,9 +277,9 @@
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
- END OF TERMS AND CONDITIONS
-
- Appendix: How to Apply These Terms to Your New Programs
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
@@ -291,7 +291,7 @@
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
- Copyright (C) 19yy <name of author>
+ Copyright (C) <year> <name of author>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -303,17 +303,16 @@
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
- USA.
+ You should have received a copy of the GNU General Public License along
+ with this program; if not, write to the Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
- Gnomovision version 69, Copyright (C) 19yy name of author
+ Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
@@ -336,5 +335,5 @@
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
-library. If this is what you want to do, use the GNU Library General
+library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License.
--- o/unix/vncserver 2011-08-09 23:16:37.000000000 +0200
+++ n/unix/vncserver 2012-03-01 22:35:29.692130619 +0100
@@ -16,10 +16,9 @@
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
-# You should have received a copy of the GNU General Public License
-# along with this software; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-# USA.
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
#

242
tigervnc-sf3495623.patch Normal file
View File

@ -0,0 +1,242 @@
Tylko w o/common/network: Makefile
diff -aur o/common/network/Socket.h n/common/network/Socket.h
--- o/common/network/Socket.h 2011-08-09 23:16:40.000000000 +0200
+++ n/common/network/Socket.h 2012-03-01 15:36:05.274711896 +0100
@@ -22,9 +22,9 @@
#define __NETWORK_SOCKET_H__
#include <limits.h>
-#include <rdr/FdInStream.h>
-#include <rdr/FdOutStream.h>
-#include <rdr/Exception.h>
+#include "../rdr/FdInStream.h"
+#include "../rdr/FdOutStream.h"
+#include "../rdr/Exception.h"
namespace network {
diff -aur o/common/network/TcpSocket.cxx n/common/network/TcpSocket.cxx
--- o/common/network/TcpSocket.cxx 2011-08-09 23:16:40.000000000 +0200
+++ n/common/network/TcpSocket.cxx 2012-03-01 15:47:39.684622379 +0100
@@ -20,6 +20,9 @@
#include <config.h>
#endif
+#include <memory>
+#include <limits>
+
#ifdef WIN32
//#include <io.h>
#include <winsock2.h>
@@ -41,10 +44,10 @@
#endif
#include <stdlib.h>
-#include <network/TcpSocket.h>
-#include <os/net.h>
-#include <rfb/util.h>
-#include <rfb/LogWriter.h>
+#include "../network/TcpSocket.h"
+#include "../os/net.h"
+#include "../rfb/util.h"
+#include "../rfb/LogWriter.h"
#ifndef INADDR_NONE
#define INADDR_NONE ((unsigned long)-1)
@@ -53,6 +56,71 @@
#define INADDR_LOOPBACK ((unsigned long)0x7F000001)
#endif
+template < class P_T >
+class temporary_buffer:protected::std::pair < P_T *,::std::ptrdiff_t >
+{
+public:typedef P_T
+ item_type;
+public:typedef class
+ temporary_buffer <
+ item_type >
+ itself, &
+ ref;
+ typedef itself const &
+ cref;
+public:typedef
+ class::std::pair <
+ item_type *,::std::ptrdiff_t >
+ inherited;
+public:typedef typename
+ inherited::second_type
+ size_type;
+public:
+temporary_buffer (::std::ptrdiff_t const &p_s = 01)
+:inherited (::std::get_temporary_buffer < item_type > (p_s))
+ {
+ }
+private:temporary_buffer (cref);
+ ref
+ operator = (cref);
+public:~temporary_buffer ()
+ {
+ ::std::return_temporary_buffer (inherited::first);
+ }
+public:size_type const &
+ size () const
+ {
+ return
+ inherited::second;
+ }
+public:item_type * const &
+ buffer () const
+ {
+ return
+ inherited::first;
+ }
+public:ref
+ clear ()
+ {
+ inherited::second = size_type ();
+ return *this;
+ }
+protected:inherited & base ()
+ {
+ return *this;
+ }
+protected:inherited const &
+ base () const
+ {
+ return *
+ this;
+ }
+public:void
+ swap (ref that)
+ {
+ ::std::swap (base (), that.base ());
+}};
+
using namespace network;
using namespace rdr;
@@ -433,8 +501,36 @@
}
void TcpListener::getMyAddresses(std::list<char*>* result) {
- const hostent* addrs = gethostbyname(0);
- if (addrs == 0)
+ hostent a_he, *addrs; typedef ::temporary_buffer < char > tbuf;
+ tbuf a_hb ((BUFSIZ));
+ {
+ tbuf a_hn ((BUFSIZ)); int a_herr;
+ typedef::std::numeric_limits < tbuf::size_type > tlp;
+ /* TASK: get host name */
+ while (a_hn.size ())
+ if (::gethostname (a_hn.buffer (), a_hn.size ()))
+ if (a_hn.size () <= tlp::max () >> 01)
+ if (ENAMETOOLONG == errno)
+ {
+ tbuf a_h1 (a_hn.size () << 01);
+ if (a_h1.size () > a_hn.size ()) a_hn.swap (a_h1);
+ else throw rdr::SystemException("gethostname", errorNumber);
+ } else throw rdr::SystemException("gethostname", errorNumber);
+ else throw rdr::SystemException("gethostname", errorNumber);
+ else break;
+ /* TASK: get host address */
+ while
+ (::gethostbyname_r (a_hn. buffer (), &a_he, a_hb. buffer (), a_hb. size (), &addrs, &a_herr))
+ if (ERANGE == errno)
+ if (a_hb .size () < tlp ::max () >> 01)
+ {
+ tbuf a_h1 (a_hb. size () << 01);
+ if (a_h1. size () > a_hb .size ()) a_hb. swap (a_h1);
+ else break;
+ } else break;
+ else throw rdr::SystemException("gethostbyname", errorNumber);
+ }
+ if (addrs != &a_he)
throw rdr::SystemException("gethostbyname", errorNumber);
if (addrs->h_addrtype != AF_INET)
throw rdr::Exception("getMyAddresses: bad family");
diff -aur o/common/network/TcpSocket.h n/common/network/TcpSocket.h
--- o/common/network/TcpSocket.h 2011-08-09 23:16:40.000000000 +0200
+++ n/common/network/TcpSocket.h 2012-03-01 15:35:15.950711772 +0100
@@ -28,7 +28,7 @@
#ifndef __NETWORK_TCP_SOCKET_H__
#define __NETWORK_TCP_SOCKET_H__
-#include <network/Socket.h>
+#include "../network/Socket.h"
#include <list>
diff -aur o/common/rdr/FdInStream.h n/common/rdr/FdInStream.h
--- o/common/rdr/FdInStream.h 2011-08-09 23:16:40.000000000 +0200
+++ n/common/rdr/FdInStream.h 2012-03-01 15:37:56.128712175 +0100
@@ -23,7 +23,7 @@
#ifndef __RDR_FDINSTREAM_H__
#define __RDR_FDINSTREAM_H__
-#include <rdr/InStream.h>
+#include "../rdr/InStream.h"
namespace rdr {
diff -aur o/common/rdr/FdOutStream.h n/common/rdr/FdOutStream.h
--- o/common/rdr/FdOutStream.h 2011-08-09 23:16:40.000000000 +0200
+++ n/common/rdr/FdOutStream.h 2012-03-01 15:39:48.662712452 +0100
@@ -23,7 +23,7 @@
#ifndef __RDR_FDOUTSTREAM_H__
#define __RDR_FDOUTSTREAM_H__
-#include <rdr/OutStream.h>
+#include "../rdr/OutStream.h"
namespace rdr {
diff -aur o/common/rdr/InStream.h n/common/rdr/InStream.h
--- o/common/rdr/InStream.h 2011-08-09 23:16:40.000000000 +0200
+++ n/common/rdr/InStream.h 2012-03-01 15:38:39.737712279 +0100
@@ -24,7 +24,7 @@
#ifndef __RDR_INSTREAM_H__
#define __RDR_INSTREAM_H__
-#include <rdr/types.h>
+#include "../rdr/types.h"
#include <string.h> // for memcpy
namespace rdr {
diff -aur o/common/rdr/OutStream.h n/common/rdr/OutStream.h
--- o/common/rdr/OutStream.h 2011-08-09 23:16:40.000000000 +0200
+++ n/common/rdr/OutStream.h 2012-03-01 15:40:25.833712551 +0100
@@ -24,7 +24,7 @@
#ifndef __RDR_OUTSTREAM_H__
#define __RDR_OUTSTREAM_H__
-#include <rdr/types.h>
+#include "../rdr/types.h"
#include <string.h> // for memcpy
namespace rdr {
diff -aur o/common/rfb/Configuration.h n/common/rfb/Configuration.h
--- o/common/rfb/Configuration.h 2011-08-09 23:16:44.000000000 +0200
+++ n/common/rfb/Configuration.h 2012-03-01 15:43:33.825713012 +0100
@@ -43,7 +43,7 @@
#ifndef __RFB_CONFIGURATION_H__
#define __RFB_CONFIGURATION_H__
-#include <rfb/util.h>
+#include "../rfb/util.h"
namespace rfb {
class VoidParameter;
diff -aur o/common/rfb/LogWriter.h n/common/rfb/LogWriter.h
--- o/common/rfb/LogWriter.h 2011-08-09 23:16:44.000000000 +0200
+++ n/common/rfb/LogWriter.h 2012-03-01 15:42:44.843712885 +0100
@@ -22,8 +22,8 @@
#define __RFB_LOG_WRITER_H__
#include <stdarg.h>
-#include <rfb/Logger.h>
-#include <rfb/Configuration.h>
+#include "../rfb/Logger.h"
+#include "../rfb/Configuration.h"
// Each log writer instance has a unique textual name,
// and is attached to a particular Log instance and

64
tigervnc.changes Normal file
View File

@ -0,0 +1,64 @@
-------------------------------------------------------------------
Fri Feb 24 20:47:33 UTC 2012 - giecrilj@stegny.2a.pl
- bump to 1.1 (current stable)
- add documentation (bnc#748504)
- build dynamic server
- eliminate gethostbyname, patch submitted upstream
- incidental clean-up
-------------------------------------------------------------------
Wed Feb 9 15:07:34 UTC 2011 - sndirsch@novell.com
- added jpeg-devel to BuildRequires
-------------------------------------------------------------------
Wed Feb 9 14:00:16 UTC 2011 - sndirsch@novell.com
- use system jpeg for building
- fixed xkb path
- added more reasonable options for Xvfb building
-------------------------------------------------------------------
Wed Feb 9 08:57:06 UTC 2011 - sndirsch@novell.com
- added Reinhard's xdmcp fix (bnc #625593)
-------------------------------------------------------------------
Wed Feb 9 08:50:10 UTC 2011 - sndirsch@novell.com
- TigerVNC build
* fix fontpatch
* cleanup
-------------------------------------------------------------------
Wed Feb 9 04:41:24 UTC 2011 - sndirsch@novell.com
- build Xvnc of TigerVNC project when %tigervnc is set; make this
the default for now
-------------------------------------------------------------------
Tue Feb 8 17:00:32 UTC 2011 - sndirsch@novell.com
- latest version of Perl script
-------------------------------------------------------------------
Thu Feb 3 17:41:02 UTC 2011 - sndirsch@novell.com
- renamed package from xorg-x11-Xvnc-ng to xorg-x11-Xvnc
-------------------------------------------------------------------
Thu Feb 3 17:26:04 UTC 2011 - sndirsch@novell.com
- rewritten wrapper script in Perl
-------------------------------------------------------------------
Wed Jan 26 10:07:10 UTC 2011 - sndirsch@novell.com
- added services file for SuSEfirewall2
-------------------------------------------------------------------
Wed Jan 26 00:43:01 UTC 2011 - sndirsch@novell.com
- created package

202
tigervnc.spec Normal file
View File

@ -0,0 +1,202 @@
#
# spec file for package xorg-x11-Xvnc
#
# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
# norootforbuild
%define tigervnc 1
%bcond_with Xstatic
%bcond_without dox
Name: tigervnc
Version: 1.1.0
Release: 0
License: GPL-2.0 and MIT
%if %tigervnc
# BuildRequires: xorg-x11-server-sdk Mesa-devel libopenssl-devel gcc-c++ libjpeg-devel
BuildRequires: nasm gcc-c++ pkgconfig(xproto) pkgconfig(x11) pkgconfig(xext) pkgconfig(xtst)
BuildRequires: autoconf automake libtool binutils-gold
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
BuildRequires: pkgconfig(bigreqsproto) >= 1.1.0 pkgconfig(xproto) >= 7.0.17 pkgconfig(randrproto) >= 1.2.99.3 pkgconfig(renderproto) >= 0.11
BuildRequires: pkgconfig(xextproto) >= 7.0.99.3 pkgconfig(inputproto) >= 1.9.99.902 pkgconfig(kbproto) >= 1.0.3 pkgconfig(fontsproto)
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-latex
%endif %{nil with dox}
URL: http://sourceforge.net/apps/mediawiki/tigervnc/
%else
Requires: x11vnc
%endif
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://netcologne.dl.sourceforge.net/project/%{name}/%{name}/%{version}/%{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
%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
%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
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" && latex "$s.tex"
do :
done
done
cd ..
%endif %{nil with dox}
autoreconf -fiv -Werror
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 %{?jobs:-j %jobs}
%if %{with Xstatic}
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_jobs
%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
%find_lang '%{name}'
%clean
rm -rf "$RPM_BUILD_ROOT"
%files -f ../../%{name}.lang
%defattr(-,root,root)
%config /etc/sysconfig/SuSEfirewall2.d/services/%{name}
%{_bindir}/*
%if %tigervnc
%doc %{_mandir}/man1/*
%if %{with Xstatic}
%exclude %{_mandir}/man1/Xserver.1*
%exclude /usr/%{_lib}/xorg/protocol.txt
%exclude /usr/%{_lib}/xorg/modules/extensions/libvnc.la
%exclude /usr/%{_lib}/xorg/modules/extensions/libvnc.so
%exclude /var/lib/xkb/compiled/README.compiled
%endif %{nil Xstatic}
%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.dvi
%else %{nil with dox}
%doc ../../doc/rfbtight.tex
%endif %{nil with dox}
%changelog

54
xorg-bug38185.patch Normal file
View File

@ -0,0 +1,54 @@
diff -aur o/configure.ac n/configure.ac
--- o/configure.ac 2011-06-17 10:20:19.257000012 +0200
+++ n/configure.ac 2011-06-17 10:05:40.696000013 +0200
@@ -322,7 +322,7 @@
old_CFLAGS="$CFLAGS"
CFLAGS="-mapcs-frame"
AC_COMPILE_IFELSE(
- AC_LANG_PROGRAM([[ ]]),
+ [AC_LANG_SOURCE([[ ]])],
ARM_BACKTRACE_CFLAGS="$CFLAGS",
ARM_BACKTRACE_CFLAGS=""
)
@@ -749,7 +749,7 @@
AC_CACHE_CHECK([whether to build Xquartz],xorg_cv_Carbon_framework,[
save_LDFLAGS=$LDFLAGS
LDFLAGS="$LDFLAGS -framework Carbon"
- AC_LINK_IFELSE([char FSFindFolder(); int main() { FSFindFolder(); return 0;}],
+ AC_LINK_IFELSE([AC_LANG_SOURCE([[char FSFindFolder(); int main() { FSFindFolder(); return 0;}]])],
[xorg_cv_Carbon_framework=yes],
[xorg_cv_Carbon_framework=no])
LDFLAGS=$save_LDFLAGS])
@@ -899,10 +899,12 @@
AC_MSG_CHECKING([for glibc...])
AC_PREPROC_IFELSE([
+AC_LANG_SOURCE([[
#include <features.h>
#ifndef __GLIBC__
#error
#endif
+]])
], glibc=yes, glibc=no)
AC_MSG_RESULT([$glibc])
@@ -928,9 +930,10 @@
fi
AC_RUN_IFELSE([
+AC_LANG_SOURCE([[
#include <time.h>
-int main(int argc, char *argv[[]]) {
+int main(int argc, char *argv[]) {
struct timespec tp;
if (clock_gettime(CLOCK_MONOTONIC, &tp) == 0)
@@ -938,6 +941,7 @@
else
return 1;
}
+]])
], [MONOTONIC_CLOCK=yes], [MONOTONIC_CLOCK=no],
[MONOTONIC_CLOCK="cross compiling"])

28
xorg-server-xdmcp.patch Normal file
View File

@ -0,0 +1,28 @@
--- 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)