diff --git a/n_tigervnc-date-time.patch b/n_tigervnc-date-time.patch new file mode 100644 index 0000000..088420a --- /dev/null +++ b/n_tigervnc-date-time.patch @@ -0,0 +1,40 @@ +--- tigervnc-1.3.1.orig/unix/xserver/hw/vnc/buildtime.c ++++ tigervnc-1.3.1/unix/xserver/hw/vnc/buildtime.c +@@ -15,4 +15,4 @@ + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, + * USA. + */ +-char buildtime[] = __DATE__ " " __TIME__; ++char buildtime[] = "??? ?? ???? ??:??:??"; +--- tigervnc-1.3.1.orig/unix/vncconfig/buildtime.c ++++ tigervnc-1.3.1/unix/vncconfig/buildtime.c +@@ -15,4 +15,4 @@ + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, + * USA. + */ +-char buildtime[] = __DATE__ " " __TIME__; ++char buildtime[] = "??? ?? ???? ??:??:??"; +--- tigervnc-1.3.1.orig/unix/x0vncserver/buildtime.c ++++ tigervnc-1.3.1/unix/x0vncserver/buildtime.c +@@ -15,4 +15,4 @@ + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, + * USA. + */ +-char buildtime[] = __DATE__ " " __TIME__; ++char buildtime[] = "??? ?? ???? ??:??:??"; +--- tigervnc-1.3.1.orig/vncviewer/buildTime.cxx ++++ tigervnc-1.3.1/vncviewer/buildTime.cxx +@@ -15,4 +15,4 @@ + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, + * USA. + */ +-const char* buildTime = "Built on " __DATE__ " at " __TIME__; ++const char* buildTime = "Built on ??? ?? ???? at ??:??:??"; +--- tigervnc-1.3.1.orig/win/winvnc/buildTime.cxx ++++ tigervnc-1.3.1/win/winvnc/buildTime.cxx +@@ -15,4 +15,4 @@ + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, + * USA. + */ +-const char* buildTime = "Built on " __DATE__ " at " __TIME__; ++const char* buildTime = "Built on ??? ?? ???? at ??:??:??"; diff --git a/tigervnc.changes b/tigervnc.changes index 42963da..5a185bd 100644 --- a/tigervnc.changes +++ b/tigervnc.changes @@ -1,3 +1,26 @@ +------------------------------------------------------------------- +Thu May 29 03:37:30 UTC 2014 - crrodriguez@opensuse.org + +- n_tigervnc-date-time.patch package republishes everyday + and gets on my nerves, this is because the binaries contain + hardcoded timestamps, avoid that. +- export CXXFLAGS and CFLAGS before building ttigervnc otherwise + it gets built without optimization. +- Make build verbose so it rpmlint catches errors like the above ones. + + +------------------------------------------------------------------- +Wed May 28 14:54:02 UTC 2014 - msrb@suse.com + +- Use update-alternatives. + +------------------------------------------------------------------- +Tue May 20 13:55:30 UTC 2014 - msrb@suse.com + +- u_tigervnc-ignore-epipe-on-write.patch + * Do not display error message because of EPIPE on write. + (bnc#864676) + ------------------------------------------------------------------- Fri May 16 13:52:19 UTC 2014 - msrb@suse.com diff --git a/tigervnc.spec b/tigervnc.spec index feb129e..b793230 100644 --- a/tigervnc.spec +++ b/tigervnc.spec @@ -19,7 +19,9 @@ Name: tigervnc Version: 1.3.1 Release: 0 -Conflicts: tightvnc +Provides: tightvnc = 1.3.9 +Obsoletes: tightvnc < 1.3.10 +Provides: vnc BuildRequires: Mesa-devel BuildRequires: autoconf BuildRequires: automake @@ -79,6 +81,8 @@ BuildRequires: pkgconfig(xkbfile) BuildRequires: pkgconfig(xorg-macros) >= 1.14 BuildRequires: pkgconfig(xproto) >= 7.0.17 BuildRequires: pkgconfig(xtrans) >= 1.2.2 +Requires(post): update-alternatives +Requires(postun): update-alternatives Url: http://sourceforge.net/apps/mediawiki/tigervnc/ BuildRoot: %{_tmppath}/%{name}-%{version}-build Summary: A high-performance, platform-neutral implementation of VNC @@ -102,7 +106,8 @@ Patch3: tigervnc-clean-pressed-key-on-exit.patch Patch4: tigervnc-sf3492352.diff Patch5: tigervnc-sf3495623.patch Patch6: u_tigervnc-dont-send-ascii-control-characters.patch - +Patch7: u_tigervnc-ignore-epipe-on-write.patch +Patch8: n_tigervnc-date-time.patch # Xserver patches Patch10: tigervnc-1.2.80-fix-int-to-pointer.patch Patch11: u_aarch64-support.patch @@ -141,7 +146,8 @@ fi %patch4 -p1 %patch5 -p1 %patch6 -p0 - +%patch7 -p0 +%patch8 -p1 pushd unix/xserver patch -p1 < ../xserver114.patch %patch10 -p1 @@ -152,8 +158,10 @@ patch -p1 < ../xserver114.patch popd %build +export CXXFLAGS="%optflags" +export CFLAGS="%optflags" # Build all tigervnc -cmake -DCMAKE_INSTALL_PREFIX:PATH=%{_prefix} -DCMAKE_BUILD_TYPE=RelWithDebInfo +cmake -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_INSTALL_PREFIX:PATH=%{_prefix} -DCMAKE_BUILD_TYPE=RelWithDebInfo make %{?_smp_mflags} # Build Xvnc server @@ -174,7 +182,7 @@ autoreconf -fi --disable-devel-docs \ --with-fontrootdir=/usr/share/fonts \ --disable-selective-werror -make %{?_smp_mflags} +make %{?_smp_mflags} V=1 popd # Build java client @@ -187,6 +195,9 @@ popd %make_install +mv $RPM_BUILD_ROOT/usr/bin/vncviewer $RPM_BUILD_ROOT/usr/bin/vncviewer-tigervnc +mv $RPM_BUILD_ROOT/usr/share/man/man1/vncviewer.1 $RPM_BUILD_ROOT/usr/share/man/man1/vncviewer-tigervnc.1 + pushd unix/xserver %make_install popd @@ -209,13 +220,22 @@ install -D -m 644 %{SOURCE10} $RPM_BUILD_ROOT%{_datadir}/vnc/classes %find_lang '%{name}' +%post +"%_sbindir/update-alternatives" --install /usr/bin/vncviewer vncviewer /usr/bin/vncviewer-tigervnc 20 + +%postun +if [ "$1" = 0 ] ; then + "%_sbindir/update-alternatives" --remove vncviewer /usr/bin/vncviewer-tigervnc +fi + %files -f %{name}.lang %defattr(-,root,root,-) -%{_bindir}/vncviewer +%{_bindir}/vncviewer-tigervnc %exclude /usr/share/doc/tigervnc-1.3.1 %doc LICENCE.TXT %doc README.txt -%{_mandir}/man1/vncviewer.1* +%{_mandir}/man1/vncviewer-tigervnc.1* +%ghost %_sysconfdir/alternatives/vncviewer %files -n xorg-x11-Xvnc %defattr(-,root,root) diff --git a/u_tigervnc-ignore-epipe-on-write.patch b/u_tigervnc-ignore-epipe-on-write.patch new file mode 100644 index 0000000..29cdd26 --- /dev/null +++ b/u_tigervnc-ignore-epipe-on-write.patch @@ -0,0 +1,25 @@ +Author: Michal Srb +Subject: Ignore EPIPE on write. +Patch-Mainline: To be upstreamed +References: bnc#864676 + +If the VNC server closes connection after our last read and before this write, we will report error message about EPIPE. +This situation is no error, however, we should quit normally same as when we find out that connection was closed during read. +Index: common/rdr/FdOutStream.cxx +=================================================================== +--- common/rdr/FdOutStream.cxx (revision 5178) ++++ common/rdr/FdOutStream.cxx (working copy) +@@ -225,7 +225,12 @@ + // network connections. Should in fact never ever happen... + } while (n < 0 && (errno == EWOULDBLOCK)); + +- if (n < 0) throw SystemException("write",errno); ++ if (n < 0) { ++ if(errno == EPIPE) ++ n = length; // Ignore EPIPE and fake successfull write, it doesn't matter that we are writing to closed socket, we will find out once we try to read from it. ++ else ++ throw SystemException("write", errno); ++ } + + gettimeofday(&lastWrite, NULL); +