commit f264e6c6cd379a07c1a9d385dc91661179d39b23c22d835cf136edf720f55907 Author: Stefan Dirsch Date: Wed Mar 7 09:44:34 2012 +0000 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 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -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 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/_service:download_files:tigervnc-1.1.0.tar.gz b/_service:download_files:tigervnc-1.1.0.tar.gz new file mode 100644 index 0000000..9386437 --- /dev/null +++ b/_service:download_files:tigervnc-1.1.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:594b70825a2c24863afd7b8dd2a5bc1935807118c6726e1d98396dee44d060f4 +size 2742707 diff --git a/tigervnc-sf3492352.diff b/tigervnc-sf3492352.diff new file mode 100644 index 0000000..d2a2080 --- /dev/null +++ b/tigervnc-sf3492352.diff @@ -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} + diff --git a/tigervnc-sf3492503.patch b/tigervnc-sf3492503.patch new file mode 100644 index 0000000..1a92c3a --- /dev/null +++ b/tigervnc-sf3492503.patch @@ -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 diff --git a/tigervnc-sf3493012.patch b/tigervnc-sf3493012.patch new file mode 100644 index 0000000..6b83215 --- /dev/null +++ b/tigervnc-sf3493012.patch @@ -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. + + +- Copyright (C) 19yy ++ Copyright (C) + + 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. + # + + # diff --git a/tigervnc-sf3495623.patch b/tigervnc-sf3495623.patch new file mode 100644 index 0000000..3a2cf73 --- /dev/null +++ b/tigervnc-sf3495623.patch @@ -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 +-#include +-#include +-#include ++#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 + #endif + ++#include ++#include ++ + #ifdef WIN32 + //#include + #include +@@ -41,10 +44,10 @@ + #endif + + #include +-#include +-#include +-#include +-#include ++#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* 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 ++#include "../network/Socket.h" + + #include + +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 ++#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 ++#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 ++#include "../rdr/types.h" + #include // 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 ++#include "../rdr/types.h" + #include // 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 ++#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 +-#include +-#include ++#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 diff --git a/tigervnc.changes b/tigervnc.changes new file mode 100644 index 0000000..10ae5cb --- /dev/null +++ b/tigervnc.changes @@ -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 + diff --git a/tigervnc.spec b/tigervnc.spec new file mode 100644 index 0000000..63e0aec --- /dev/null +++ b/tigervnc.spec @@ -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 diff --git a/xorg-bug38185.patch b/xorg-bug38185.patch new file mode 100644 index 0000000..cc0af82 --- /dev/null +++ b/xorg-bug38185.patch @@ -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 + #ifndef __GLIBC__ + #error + #endif ++]]) + ], glibc=yes, glibc=no) + AC_MSG_RESULT([$glibc]) + +@@ -928,9 +930,10 @@ + fi + + AC_RUN_IFELSE([ ++AC_LANG_SOURCE([[ + #include + +-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"]) + diff --git a/xorg-server-xdmcp.patch b/xorg-server-xdmcp.patch new file mode 100644 index 0000000..7b3dc58 --- /dev/null +++ b/xorg-server-xdmcp.patch @@ -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)