[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#985790: marked as done (unblock: tigervnc/1.11.0+dfsg-2)



Your message dated Tue, 23 Mar 2021 20:32:42 +0000
with message-id <E1lOnhi-0008Sa-Fn@respighi.debian.org>
and subject line unblock tigervnc
has caused the Debian Bug report #985790,
regarding unblock: tigervnc/1.11.0+dfsg-2
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
985790: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=985790
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock
X-Debbugs-Cc: pkg-tigervnc-devel@lists.alioth.debian.org

Please unblock package tigervnc

[ Reason ]
Fix for bug #985614.

[ Impact ]
Sharing a VNC session is not possible.

[ Tests ]
I applied the bug fix from upstream and tested that this fixes
the reported bug #985614.

[ Risks ]
TigerVNC is a leaf package, the changes are not complex, and
the applied patch has already been tested by upstream.

[ Checklist ]
  [x] all changes are documented in the d/changelog
  [x] I reviewed all changes and I approve them
  [x] attach debdiff against the package in testing

unblock tigervnc/1.11.0+dfsg-2
diff -Nru tigervnc-1.11.0+dfsg/debian/changelog tigervnc-1.11.0+dfsg/debian/changelog
--- tigervnc-1.11.0+dfsg/debian/changelog	2021-02-22 18:19:01.000000000 +0100
+++ tigervnc-1.11.0+dfsg/debian/changelog	2021-03-22 22:21:28.000000000 +0100
@@ -1,3 +1,11 @@
+tigervnc (1.11.0+dfsg-2) unstable; urgency=medium
+
+  [ Joachim Falk ]
+  * Properly handle boolean configuration values in tigervnc-standalone-server
+    (Closes: #985614).
+
+ -- Joachim Falk <joachim.falk@gmx.de>  Mon, 22 Mar 2021 22:21:54 +0100
+
 tigervnc (1.11.0+dfsg-1) unstable; urgency=medium

   [ Joachim Falk ]
diff -Nru tigervnc-1.11.0+dfsg/debian/helpers/usr/share/perl5/TigerVNC/Config.pm tigervnc-1.11.0+dfsg/debian/helpers/usr/share/perl5/TigerVNC/Config.pm
--- tigervnc-1.11.0+dfsg/debian/helpers/usr/share/perl5/TigerVNC/Config.pm	2021-02-21 15:24:17.000000000 +0100
+++ tigervnc-1.11.0+dfsg/debian/helpers/usr/share/perl5/TigerVNC/Config.pm	2021-03-22 13:46:46.000000000 +0100
@@ -402,7 +402,7 @@
               &{$override}('shared', undef);
             }
           } elsif (defined $options->{'shared'}) {
-            return $options->{'shared'} eq 'never';
+            return $options->{'shared'} eq 'never' ? 1 : 0;
           } else {
             return undef;
           }
@@ -415,7 +415,7 @@
               &{$override}('shared', undef);
             }
           } elsif (defined $options->{'shared'}) {
-            return $options->{'shared'} eq 'always';
+            return $options->{'shared'} eq 'always' ? 1 : 0;
           } else {
             return undef;
           }
diff -Nru tigervnc-1.11.0+dfsg/debian/patches/0300-fix-Xtigervnc-boolparam-parsing.patch tigervnc-1.11.0+dfsg/debian/patches/0300-fix-Xtigervnc-boolparam-parsing.patch
--- tigervnc-1.11.0+dfsg/debian/patches/0300-fix-Xtigervnc-boolparam-parsing.patch	1970-01-01 01:00:00.000000000 +0100
+++ tigervnc-1.11.0+dfsg/debian/patches/0300-fix-Xtigervnc-boolparam-parsing.patch	2021-03-22 13:58:35.000000000 +0100
@@ -0,0 +1,142 @@
+Description: Tolerate specifying -BoolParam 0 and similar
+ .
+ This is needed by vncserver which doesn't know which parameters are boolean,
+ and it cannot use the -Param=Value form as that isn't tolerated by the Xorg
+ code.
+ .
+ This patch is upstream commit 38c6848b30cb1908171f2b4628e345fbf6727b39
+Author: Pierre Ossman <ossman@cendio.se>
+
+diff --git a/unix/vncserver/vncserver.in b/unix/vncserver/vncserver.in
+index 25fbbd31..261b258f 100755
+--- a/unix/vncserver/vncserver.in
++++ b/unix/vncserver/vncserver.in
+@@ -107,7 +107,7 @@ $default_opts{rfbwait} = 30000;
+ $default_opts{rfbauth} = "$vncUserDir/passwd";
+ $default_opts{rfbport} = $vncPort;
+ $default_opts{fp} = $fontPath if ($fontPath);
+-$default_opts{pn} = "";
++$default_opts{pn} = undef;
+
+ # Load user-overrideable system defaults
+ LoadConfig($vncSystemConfigDefaultsFile);
+@@ -242,13 +242,13 @@ push(@cmd, "@CMAKE_INSTALL_FULL_BINDIR@/Xvnc", ":$displayNumber");
+
+ foreach my $k (sort keys %config) {
+   push(@cmd, "-$k");
+-  push(@cmd, $config{$k}) if $config{$k};
++  push(@cmd, $config{$k}) if defined($config{$k});
+   delete $default_opts{$k}; # file options take precedence
+ }
+
+ foreach my $k (sort keys %default_opts) {
+   push(@cmd, "-$k");
+-  push(@cmd, $default_opts{$k}) if $default_opts{$k};
++  push(@cmd, $default_opts{$k}) if defined($default_opts{$k});
+ }
+
+ warn "\nNew '$desktopName' desktop is $host:$displayNumber\n\n";
+@@ -291,7 +291,7 @@ sub LoadConfig {
+           # current config file being loaded defined the logical opposite setting
+           # (NeverShared vs. AlwaysShared, etc etc).
+           $toggle = lc($1); # must normalize key case
+-          $config{$toggle} = $k;
++          $config{$toggle} = undef;
+         }
+       }
+       close(IN);
+diff --git a/unix/xserver/hw/vnc/RFBGlue.cc b/unix/xserver/hw/vnc/RFBGlue.cc
+index f108fae4..7c32bea8 100644
+--- a/unix/xserver/hw/vnc/RFBGlue.cc
++++ b/unix/xserver/hw/vnc/RFBGlue.cc
+@@ -143,6 +143,22 @@ const char* vncGetParamDesc(const char *name)
+   return param->getDescription();
+ }
+
++int vncIsParamBool(const char *name)
++{
++  VoidParameter *param;
++  BoolParameter *bparam;
++
++  param = rfb::Configuration::getParam(name);
++  if (param == NULL)
++    return false;
++
++  bparam = dynamic_cast<BoolParameter*>(param);
++  if (bparam == NULL)
++    return false;
++
++  return true;
++}
++
+ int vncGetParamCount(void)
+ {
+   int count;
+diff --git a/unix/xserver/hw/vnc/RFBGlue.h b/unix/xserver/hw/vnc/RFBGlue.h
+index 112405b8..695cea10 100644
+--- a/unix/xserver/hw/vnc/RFBGlue.h
++++ b/unix/xserver/hw/vnc/RFBGlue.h
+@@ -41,6 +41,7 @@ int vncSetParam(const char *name, const char *value);
+ int vncSetParamSimple(const char *nameAndValue);
+ char* vncGetParam(const char *name);
+ const char* vncGetParamDesc(const char *name);
++int vncIsParamBool(const char *name);
+
+ int vncGetParamCount(void);
+ char *vncGetParamList(void);
+diff --git a/unix/xserver/hw/vnc/xvnc.c b/unix/xserver/hw/vnc/xvnc.c
+index 4eb0b0b1..5744acac 100644
+--- a/unix/xserver/hw/vnc/xvnc.c
++++ b/unix/xserver/hw/vnc/xvnc.c
+@@ -618,6 +618,20 @@ ddxProcessArgument(int argc, char *argv[], int i)
+         exit(0);
+     }
+
++    /* We need to resolve an ambiguity for booleans */
++    if (argv[i][0] == '-' && i+1 < argc &&
++        vncIsParamBool(&argv[i][1])) {
++        if ((strcasecmp(argv[i+1], "0") == 0) ||
++            (strcasecmp(argv[i+1], "1") == 0) ||
++            (strcasecmp(argv[i+1], "true") == 0) ||
++            (strcasecmp(argv[i+1], "false") == 0) ||
++            (strcasecmp(argv[i+1], "yes") == 0) ||
++            (strcasecmp(argv[i+1], "no") == 0)) {
++            vncSetParam(&argv[i][1], argv[i+1]);
++            return 2;
++        }
++    }
++
+     if (vncSetParamSimple(argv[i]))
+ 	return 1;
+
+diff --git a/vncviewer/vncviewer.cxx b/vncviewer/vncviewer.cxx
+index d4dd3063..77ba3d3f 100644
+--- a/vncviewer/vncviewer.cxx
++++ b/vncviewer/vncviewer.cxx
+@@ -556,6 +556,26 @@ int main(int argc, char** argv)
+   }
+
+   for (int i = 1; i < argc;) {
++    /* We need to resolve an ambiguity for booleans */
++    if (argv[i][0] == '-' && i+1 < argc) {
++        VoidParameter *param;
++
++        param = Configuration::getParam(&argv[i][1]);
++        if ((param != NULL) &&
++            (dynamic_cast<BoolParameter*>(param) != NULL)) {
++          if ((strcasecmp(argv[i+1], "0") == 0) ||
++              (strcasecmp(argv[i+1], "1") == 0) ||
++              (strcasecmp(argv[i+1], "true") == 0) ||
++              (strcasecmp(argv[i+1], "false") == 0) ||
++              (strcasecmp(argv[i+1], "yes") == 0) ||
++              (strcasecmp(argv[i+1], "no") == 0)) {
++              param->setParam(argv[i+1]);
++              i += 2;
++              continue;
++          }
++      }
++    }
++
+     if (Configuration::setParam(argv[i])) {
+       i++;
+       continue;
diff -Nru tigervnc-1.11.0+dfsg/debian/patches/series tigervnc-1.11.0+dfsg/debian/patches/series
--- tigervnc-1.11.0+dfsg/debian/patches/series	2021-02-21 15:24:54.000000000 +0100
+++ tigervnc-1.11.0+dfsg/debian/patches/series	2021-03-22 13:59:06.000000000 +0100
@@ -10,6 +10,7 @@
 0205-defined-CMAKE_INSTALL_FULL_BINDIR.patch
 0210-use-tigervncsession-name.patch
 0220-remove-systemd-service-obsolete-syslog-target.patch
+0300-fix-Xtigervnc-boolparam-parsing.patch

 # These patches are lifted from RedHat
 rh/0904-Added-RH-patch-tigervnc11-rh588342.patch-which-fixes.patch

--- End Message ---
--- Begin Message ---
Unblocked.

--- End Message ---

Reply to: