Package: x2goclient; Maintainer for x2goclient is X2Go Developers <x2go-dev@lists.x2go.org>; Source for x2goclient is src:x2goclient.
Reported by: Marco Sommella <marco.sommella@gmail.com>
Date: Wed, 2 Nov 2016 09:00:01 UTC
Severity: normal
Tags: build-win32, pending
Merged with 1105, 1114, 1115, 1118, 1128, 1150
Found in version 4.0.5.2
Fixed in version 4.1.0.0
Message #33 received at control@bugs.x2go.org (full text, mbox, reply):
Received: (at control) by bugs.x2go.org; 22 Feb 2017 04:11:09 +0000 From x2go@ymir.das-netzwerkteam.de Wed Feb 22 05:10:27 2017 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on ymir.das-netzwerkteam.de X-Spam-Level: X-Spam-Status: No, score=-2.9 required=3.0 tests=ALL_TRUSTED,BAYES_00, URIBL_BLOCKED autolearn=unavailable version=3.3.2 Received: from localhost (localhost [127.0.0.1]) by ymir.das-netzwerkteam.de (Postfix) with ESMTP id 196224809E; Wed, 22 Feb 2017 05:10:27 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at ymir.das-netzwerkteam.de Received: from ymir.das-netzwerkteam.de ([127.0.0.1]) by localhost (ymir.das-netzwerkteam.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id fwh6C+qmdqHl; Wed, 22 Feb 2017 05:10:18 +0100 (CET) Received: by ymir.das-netzwerkteam.de (Postfix, from userid 1005) id 95011480A0; Wed, 22 Feb 2017 05:10:08 +0100 (CET) From: X2Go Release Manager <git-admin@x2go.org> To: 1105-submitter@bugs.x2go.org Cc: control@bugs.x2go.org, 1105@bugs.x2go.org Subject: X2Go issue (in src:x2goclient) has been marked as closed Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit Message-Id: <20170222041008.95011480A0@ymir.das-netzwerkteam.de> Date: Wed, 22 Feb 2017 05:10:08 +0100 (CET)
close #1105 thanks Hello, we are very hopeful that X2Go issue #1105 reported by you has been resolved in the new release (4.1.0.0) of the X2Go source project »src:x2goclient«. You can view the complete changelog entry of src:x2goclient (4.1.0.0) below, and you can use the following link to view all the code changes between this and the last release of src:x2goclient. http://code.x2go.org/gitweb?p=x2goclient.git;a=commitdiff;h=a972b0cd4622a101b1ddb3d4d3b0cf1f71dbfd6d;hp=550ae93c0ea493e0c740d6c1c1e83b014d8265dd If you feel that the issue has not been resolved satisfyingly, feel free to reopen this bug report or submit a follow-up report with further observations described based on the new released version of src:x2goclient. Thanks a lot for contributing to X2Go!!! light+love X2Go Git Admin (on behalf of the sender of this mail) --- X2Go Component: src:x2goclient Version: 4.1.0.0-0x2go1 Status: RELEASE Date: Wed, 22 Feb 2017 05:02:35 +0100 Fixes: 910 1024 1096 1105 1124 1139 Changes: x2goclient (4.1.0.0-0x2go1) RELEASED; urgency=medium . [ Mihai Moldovan ] * New upstream version (4.1.0.0): - src/sessionbutton.cpp: replace drop down menu button on session buttons with a more prominent, bigger settings gear icon. Requested for visibility. - src/onmainwindow.cpp: add debug statements to createRSAKey () regarding the host pub key locations on OS X. - src/onmainwindow.cpp: fix error message string in printSshDError_noHostPubKey (). - src/sshmasterconnection.cpp: add SecurID prompt to challenge auth code prompts. - src/sharewidget.cpp: fix compile on UNIX-like platforms by defaulting to ISO-8859-1 not just on Linux but also other platforms. Fixes: #1124. - src/x2goutils.cpp: don't try to wrap absolute paths as legacy resource URIs in wrap_legacy_resource_URIs (). Fixes: #910. - {res/img/svg/,res/resources.qrc}: add new file hamburger.svg, a custom-created hamburger icon. - src/sessionbutton.cpp: replace drop down menu button on session buttons again with the custom-created hamburger icon. Also fix positioning issues in mini mode. - src/onmainwindow.{cpp,h}: add new function images_resource_path (), similar to iconsPath () but without explicitly referring to icons. - src/sessionbutton.cpp: we cannot use ".." in resource paths to move up one level, so use images_resource_path () instead and hope that we finally get a yummy hamburger. - src/onmainwindow.{cpp,h}: let iconsPath () take a const-reference instead of an object and make it a const member function. - src/onmainwindow.{cpp,h}: let images_resource_path () take a new, optional "base" parameter, that might be empty and is put in-between the fixed resource path string and the filename parameter. - src/onmainwindow.cpp: use images_resource_path () in iconsPath (). - src/sessionbutton.cpp: instead of using the hamburger.svg file directly, render it to a raster image and use this Pixmap as the icon file - otherwise the icon will not show up. Also change the icon size back to 16x16 px, that's big enough. - src/onmainwindow.cpp: remove left-over debug test message. - {unixhelper.{cpp,h},x2goclient.pro{,.maemo}}: add unixhelper stub. - unixhelper.{cpp,h}: implement cleanup program for process group. - x2goclient.cpp: wrap X2Go Client main function and use that. - x2goclient.cpp: add fork_helper() function to start up the UNIX cleanup helper. - x2goclient.cpp: use setsid() on UNIX to become session and process group leader. If that fails, fork, terminate the parent and execute setsid() in the child process. Use fork_helper() to start the UNIX cleanup helper in a child process and continue with the main application in the parent. - x2goclient.cpp: add myself to copyright header. - x2goclient.cpp: add legacy <sys/types.h> header needed for old operating systems. - x2goclient.cpp: fix std::edit -> std::exit typo. - unixhelper.{h,cpp}: also include <QtCore/qglobal.h> to have Q_OS_UNIX defined on UNIX-based platforms. Move guards around. - unixhelper.h: forgot to declare type of unix_cleanup() function. - {unixhelper.{cpp,h},x2goclient.cpp}: unixhelper should really be a (module) namespace, not a class. - unixhelper.{cpp,h}: add documentation/comments. - x2goclient.cpp: return return value of unixhelper::unix_cleanup(). - unixhelper.cpp: kill process group on error. - unixhelper.{cpp,h}: implement signal unblocking in unixhelper::unix_cleanup(). Update documentation. - unixhelper.cpp: port from std::signal() to sigaction(). Handle errors. - x2goclient.cpp: clean up. We don't care if setsid() fails or succeeds and we certainly do not need to fork to force it to succeed. Whether we are a process group leader already or become one doesn't matter, if the end result is that we are process group leader. - x2goclient.cpp: don't start the UNIX cleanup helper process right after forking, but introduce a new command line option --unixhelper and re-execute the main binary with this new option to indicate that the UNIX cleanup helper tool is requested. It is necessary to call exec() after fork on virtually all operating system, especially on OS X. - x2goclient.cpp: fix compile problems introduced with the last commit. - x2goclient.cpp: fix string comparison. - x2goclient.cpp: create new argv array on the heap instead of on the stack. Stack data will be invalid once the function goes out of scope (which is what execv is doing.) - unixhelper.{cpp,h}: raise sleeping time to two seconds and grace period to 10 seconds. - {unixhelper.{cpp,h},x2goclient.cpp}: switch main cleanup handling to parent PID polling. - unixhelper.{cpp,h}: ignore SIGINT, SIGTERM, SIGPIPE, SIGQUIT, SIGUSR1 and SIGUSR2. - x2goclient.cpp: fix failing exec() call for the UNIX helper utility: correctly terminate arguments vector. - {appdialog,configwidget,onmainwindow,unixhelper}.cpp: fix some compile warnings with GCC. Fix a few whitespace issues. - appdialog.cpp: initialize parent in default case. Another GCC compile warning fix. - onmainwindow.cpp: correctly use ~/.x2go/.ssh as ssh directory when starting sshd in user mode. Put the authorized_keys file in there. Check and set correct permissions for both the directory and authorized_keys file. Generalize some Windows-specific sections by using QDir and QFile. - compat.{cpp,h}: new files. Implements strndup on OS X 10.6 and below. Add to x2goclient.cpp, x2goclient.pro and x2goclient.pro.maemo. - compat.{cpp,h}: remove inline keyword, because function is not defined in header file. - compat.h: include QtCore/qglobal.h for Q_OS_... macros. - pulsemanager.{cpp,h}: new class for PulseAudio management. - x2goclient.pro{,.maemo}: reference new pulsemanager.{cpp,h} files. - macbuild.sh: add new MACPORTS_PREFIX detection/variable. - macbuild.sh: add new dependency_error() helper function. - macbuild.sh: add new lazy_canonical_path() helper function. - macbuild.sh: add new get_nesting_level() helper function. - macbuild.sh: add new repeat_str() helper function. - macbuild.sh: refactor nxproxy detection to use MACPORTS_PREFIX. - macbuild.sh: add EXE_DIR and FRAMEWORKS_DIR internal variables. Create directories based on that. Use them when bundling. - macbuild.sh: define PulseAudio libraries and binaries to be later copied. Discover them using MACPORTS_PREFIX. Error out if any component was not found. - macbuild.sh: copy PulseAudio libraries and binaries. - macbuild.sh: add phase output for bundling nxproxy. - macbuild.sh: add work-in-progress PulseAudio bundling. Needs to be ripped apart and be redone, because dylibbundler is not smart enough to handle our case. - macbuild.sh: add Linux library file name scheme regex as a precaution. - macbuild.sh: directories are "executable", so the first check must explicitly include a check for the argument being not a directory. - macbuild.sh: add some more debugging output. - macbuild.sh: remove libpulse and libpulsecore from libraries to be bundled, as something else will bundle them anyway. - macbuild.sh: use while-read-loop and find to actually recurse through directories. - macbuild.sh: check current file name against regex, not a (now) full path. - macbuild.sh: add the correct file path to the library bundling array. - macbuild.sh: when actually bundling libraries, use @executable_path instead of @loader_path. Will need testing. - macbuild.sh: fix echo call to also show the intermediate lib dir, not just the library file name. Helps debugging. - macbuild.sh: also install libraries into staging area with intermediate library path. Putting everything into a single place is a stupid idea. - deduplicate.sh: add new, more or less Proof of Concept, and Work in Progress file deduplication script. - deduplicate.sh: add duplicates-to-real mapping. - deduplicate.sh: add missed local variable declaration. - deduplicate.sh: new function for parsing otool's output and printing library dependencies if no error occurred. - deduplicate.sh: non-functional: change WARNING to ERROR in error messages. - deduplicate.sh: add first skeleton for library dependency rewriting of deleted duplicates. - deduplicate.sh: correctly unset an array element. - deduplicate.sh: change range-based for loops to "${!arr[@]}" to handle "sparse" arrays correctly. - deduplicate.sh: quote "${arr[@]}" correctly to not suddenly force word splitting. - deduplicate.sh: fix parse_otool_output: we want to return failure only iff any of the strings are present in otool's output and actually handle the failure string *ARRAY* correctly as that. - deduplicate.sh: change exit to return in parse_otool_output. - deduplicate.sh: record crafted "library path" values in duplicates replacement to_files array. - deduplicate.sh: debug parse_otool_output fiercely for the time being. - deduplicate.sh: prevent word splitting when parsing otool's output. We want the raw bits. - deduplicate.sh: switch to range-based for loop in fixup section for duplicate array walking as we need to access the same element index in the replacement array. - deduplicate.sh: add more useful information in fixup section's error message. - deduplicate.sh: unstub fixup section. - deduplicate.sh: parse_otool_output: jump over first matching entry, which is - hopefully - the id line. - deduplicate.sh: actually include file name in install_name_tool pseudo output. - deduplicate.sh: save dependency format base string as a readonly variable and use that instead of repeating a fixed string. - deduplicate.sh: copy lazy_canonical_path from macbuild.sh for now. deduplicate.sh will eventually be merged into macbuild.sh anyway. - deduplicate.sh: more temporary debugging output in fixup section. - deduplicate.sh: surprisingly, it turned out that only checking the duplicate's basename against the current dependency's basename is not good enough. Actually construct "the real dependency-format duplicate string" and check it against "the real dependency". Even this is still not good enough as it needs a bit cleanup - coming up next. - deduplicate.sh: cleanup as announced in the last commit - using lazy_canonical_path. - deduplicate.sh: remove a bit of noisy debug output, but turn on parse_otool_output debugging. - deduplicate.sh: fix wrong return value capture. We want to check the return value of the executed function/command, not that of "typeset". - deduplicate.sh: add WARNING to status message. - deduplicate.sh: remove some noisy debug output. - macbuild.sh: replace tabs with two spaces. No functional changes. - deduplicate.sh: replace tabs with two spaces. No functional changes. - macbuild.sh: merge deduplicate.sh content in. Also enable the functionality "for real", not just as a dry-run. - macbuild.sh: spelling fix. - macbuild.sh: more more debug messages and a whitespace change. - macbuild.sh: fix removal of base prefix in deduplication if base prefix ends in a slash. - macbuild.sh: copy "special" files, so that they can be removed later on. - macbuild.sh: rewrite ID line detection algorithm. Modules don't seem to be needing one, so skipping the first dependency line incidentally skips a "real" dependency for modules. - pulsemanager.{cpp,h}: use name and underscore for member variables, not underscore and name. - pulsemanager.cpp: minor non-behavior changing fixes. - pulsemanager.{cpp,h}: reformat only. - pulsemanager.cpp: use initializer list for constructor. - pulsemanager.{cpp,h}: add pulse_version_{major,minor}_ member variables. - pulsemanager.cpp: reformat only. - pulsemanager.{cpp,h}: switch port definitions to std::uint16_t. - pulsemanager.h: add std:: namespace selector for uint32_t version variables. - pulsemanager.{cpp,h}: add ESD support. - pulsemanager.{cpp,h}: rename relaunch () to restart (). - pulsemanager.cpp: reformat only. - pulsemanager.{cpp,h}: fixup preprocessor usage. - pulsemanager.{cpp,h}: add server_args_, server_binary_ and server_working_dir_ class variables. - pulsemanager.cpp: make start () wrap the "real" OS-specific start functions. - pulsemanager.{cpp,h}: new function create_client_dir (). - pulsemanager.cpp: add Windows support to shutdown (). - pulsemanager.cpp: add cleanup support to on_pulse_finished (). - pulsemanager.cpp: add Windows stuff to initial env in constructor. - pulsemanager.{cpp,h}: add new function start_generic () to split off common functionality. - pulsemanager.cpp: let start_osx () use start_generic (). - pulsemanager.{cpp,h}: implement start_win () as part of Windows functionality. - pulsemanager.cpp: also load module-esound-protocol-tcp module. - pulsemanager.cpp: make generate_server_config () Windows-compatible. - pulsemanager.cpp: make generate_client_config () Windows-compatible. - pulsemanager.cpp: only play startup sound if DEBUG macro is defined. - pulsemanager.cpp: make startup sound playing via slot_play_startup_sound () Windows-compatible. - pulsemanager.cpp: typo fix in variable name server_working_dir_. - pulsemanager.{cpp,h}: find_port () actually returns a value, fix declaration accordingly. - pulsemanager.cpp: fix compile errors in find_port () by renaming the ret or port variable to search_port. - pulsemanager.cpp: fix another compile error due to typo'd versions of generate_server_config () and generate_client_config (). - pulsemanager.cpp: another typo fix: findPort -> find_port. - pulsemanager.cpp: reorder member variables in initialization list. Compile warning fix. - pulsemanager.cpp: add "dummy" start_linux () function. - pulsemanager.cpp: generate platform-dependent values for member variables server_working_dir_ and server_binary_ in constructor. We need them right away. - pulsemanager.{cpp,h}: new member function fetch_pulseaudio_version () with first skeleton. Call it in the constructor. - pulsemanager.cpp: re-initialize buffer string on each run while getting CWD on Linux. - pulsemanager.cpp: fix some error messages by removing redundant newlines. - pulsemanager.{cpp,h}: some older PA versions used the major, minor and micro numbering scheme together with a descriptive string. Add new member variables for this and initialize them correctly. - pulsemanager.h: reformat a bit by adding newlines and moving lines in a (hopefully) logical fashion. - pulsemanager.cpp: add algorithm for actually extracting PA version number. - pulsemanager.{cpp,h}: only allow changing PA or ESD ports when server is not currently running. - pulsemanager.{cpp,h}: add record and playback private members, as well as getters and setters. - pulsemanager.cpp: reorder member variables in initializer list. - pulsemanager.cpp: fix compile error in startup sound function. - pulsemanager.h: more moving around. - pulsemanager.cpp: use record and playback member variables. - pulsemanager.cpp: cleanup, don't use copy assignment operator when we just need to construct a new object. - macbuild.sh: PulseAudio has been updated to version 8.0. Reflect this. - macbuild.sh: libpulsecore.dylib also resides in the "private" pulseaudio subdirectory now, adding it to "special files workaround". - pulsemanager.cpp: remove config.pa while doing post-exit cleanups. - src/pulsemanager.{cpp,h}: add get_pulse_dir () for fetching the (OS-dependent) PulseAudio config and cookie directory. - src/pulsemanager.cpp: replace hardcoded modules paths with dynamic ones depending on the detected PA version. - src/pulsemanager.cpp: add "FIXME" debug logging (and cleanup.) - src/pulsemanager.cpp: backport fix for 526. - src/pulsemanager.cpp: backport fix for 422. - src/configdialog.{cpp,h}: add "no record" support for OS X (through PulseManager.) - src/configdialog.cpp: whitespace only. - src/onmainwindow.{cpp,h}: hook PulseManager in - for both OS X and Windows. - src/mediawidget.cpp: reflect new capabilities through PulseManager. - src/pulsemanager.h: move x2gologdebug.h inclusion into implementation file. - src/pulsemanager.cpp: output PA stdout/stderr via x2goDebug, not plainly to stdout. - src/configdialog.cpp: fix compile error by removing obsolete (and now faulty) line for removed restart message. - src/onmainwindow.cpp: fix compile errors due to misspelled function names. - src/pulsemanager.cpp: let start () act as a wrapper and do nothing if the PA server is already running. - src/onmainwindow.cpp: fix compile error due to misuse of #ifdef. - src/onmainwindow.cpp: convert QDir object to QString for further processing. - src/onmainwindow.cpp: make use of new PulseManager::start () behavior and always use it, no matter whether server is up already or not. - src/pulsemanager.cpp: fix compile error due to typo. - src/pulsemanager.cpp: hide Windows-only code behind #ifdefs. Otherwise we'll get compile failures on non-Windows platforms. - src/pulsemanager.{cpp,h}: add debugging setter and private variable. - src/pulsemanager.{cpp,h}: port to new debugging feature. - src/onmainwindow.cpp: port to new debugging feature of PulseManager. - src/pulsemanager.h: fix compile error due to mismatching function declaration for set_debug (). - res/sound: add startup.wav sound to be played back when starting the PA daemon in debug mode. - src/pulsemanager.cpp: don't time out while trying to start PA or paplay. "Handle" errors by printing out debug messages. - macbuild.sh: add support for copying resource files. Currently only used for startup.wav. - res: rename "sound" to "audio". - macbuild.sh: fix copying of resource files. - macbuild.sh: also add PA binaries to deduplication fixup list. - macbuild.sh: don't error out while executing parse_otool_output (). - macbuild.sh: save return value of parse_otool_output (). Otherwise we'll fetch the return value of "set", which is not really what we need. - src/pulsemanager.cpp: fix typo in fetch_pulseaudio_version (). Read standard output from temporary process, not our "main" server process (which at this point is not even started yet.) - src/pulsemanager.cpp: don't overwrite the temporary string variable for the current line with what was supposed to hold new data in fetch_pulseaudio_version (). - src/pulsemanager.{cpp,h}: rename on_pulse_finished () to slot_on_pulse_finished (). Oops... - src/pulsemanager.cpp: actually only play startup sound if debugging is enabled. - src/pulsemanager.cpp: don't insert stray newline into config.pa. - src/pulsemanager.cpp: insert PULSE_SERVER and PULSE_COOKIE variables into environment as used by PulseManager. Otherwise we won't be able to start binaries like paplay. - src/pulsemanager.cpp: don't remove PA config and log file in ~/.x2go/pulse on PA shutdown if debugging has been requested. - src/x2goutils.{cpp,h}: add new function find_binary (). Searches for a specific binary in a colon-separated list of paths. Really just a compat function, as Qt 5 includes QStandardPaths::findExecutable (). - src/pulsemanager.cpp: auto-detect PA binary in $PATH and MacPorts default prefix as well on OS X. - src/pulsemanager.cpp: add comments to Qt 4 code part. - src/pulsemanager.cpp: add reminder for Linux-implementation in slot_play_startup_sound (). - src/x2goutils.cpp: fix compile error. - src/pulsemanager.h: add new system_pulse_ variable to indicate that a system PA binary shall be used. - src/pulsemanager.cpp: correctly initialize and set system_pulse_ when required. - src/x2goutils.{cpp,h}: add application modality parameter to show_RichText_Generic_MsgBox () and its wrappers. - src/pulsemanager.cpp: add error message boxes throughout PulseManager. Don't just abort () the program. - src/x2goutils.h: fix compile error due to typo. - src/pulsemanager.cpp: fix compile error on Windows. - src/pulsemanager.cpp: fix startup when using the system-PA version. - src/pulsemanager.cpp: fix startup sound playback when using the system-PA version. - src/pulsemanager.cpp: add warning message boxes where appropriate. - src/pulsemanager.cpp: remove extraneous newlines from debug output. - src/x2goutils.cpp: fix faulty logic in find_binary (): only reset the given path to CWD iff it's actually empty. Not the other way around. - src/x2goutils.cpp: add some debug logging to find_binary (). - nsis/x2goclient.nsi: add startup.wav to installer package. - src/: new file windows_stdint.h for Windows-compatibility when using std::(u)int*_t types. These are only available with GCC in C++11 mode on Windows for some reason. - src/pulsemanager.h: use windows_stdint.h header on Windows, cstdint otherwise. - src/onmainwindow.cpp: short out code parts unconditionally checking for the userSshd variable. We don't need it on Windows (and don't define it on purpose) because using an user-mode SSH daemon is implied there (for now.) - src/onmainwindow.cpp: drop obsolete pulseVersionTest variable initialization in Windows-only code. - src/onmainwindow.cpp: drop obsolete pulseVersionIsLegacy variable initialization in Windows-only code. - src/onmainwindow.cpp: add another pair of braces to in_addr-type variable initialization on Windows to silence compiler warning. - src/onmainwindow.cpp: fix compile error on Windows after moving some code around. - src/onmainwindow.cpp: use correct C++ universal initializer for initializing in_addr-type variable, the C-style universal zero initializer won't cut it here. - src/pulsemanager.h: include accidentally omitted wapi.h header file. - src/pulsemanager.cpp: make PA version parsing function more generic and don't expect that a number is always terminated with a period or dash. Especially on Windows, with a PA version number of "6.0", this lead to errors. OS X was fine with its "8.0.0-something" version number, but the optional part at the end or even the micro version number could be missing any time. - src/pulsemanager.cpp: make sure that wherever we interface with non-Qt functions, paths are in native form (i.e., containing empty separators, instead of the "generic" slash UNIX-style separator.) Should fix a PA startup issue on Windows. - src/pulsemanager.cpp: fix PA version fetching on OS X again. - src/unixhelper.{cpp,h}: make argument of kill_pgroup () const. - src/unixhelper.h: style and general fixes within comments. - src/unixhelper.{cpp,h}: split off core functionality of kill_pgroup () into a new function called real_kill_pgroup (). - src/unixhelper.{cpp,h}: rewrite kill_pgroup () to act as a wrapper around real_kill_pgroup (). Adjust comment. We need to do this so the cleanup process doesn't kill itself before all other processes in the process group are killed. - src/pulsemanager.cpp: remove unused variables. - src/unixhelper.cpp: code cleanup. - src/{unixhelper.cpp,x2goclient.cpp}: fix errno usage - save before use. - src/onmainwindow.cpp: document createRSAKey () because what it does is completely non-obvious. - src/onmainwindow.cpp: add support for explicitly setting the private key bit size based on type and use values (currently) regarded as secure to generateHostKey (). - src/onmainwindow.{cpp,h}: rename generateHostKey () to generateKey () and add a boolean parameter with a default of false to request a public key. Change old invocations of generateHostKey () accordingly. - src/onmainwindow.cpp: refactor generateKey () a little bit to compact it. - src/onmainwindow.{cpp,h}: rewrite generateKey () function to actually also generate user keys. Now returns the private key file path (public key file path is trivially determined by appending ".pub" to that return value.) Change all locations referencing generateKey () to use the return value (if necessary) and remove dead code that was used to generate a user key manually previously. - src/onmainwindow.cpp: add more error handling to generateKey () and fix up a broken error-handling section. - src/onmainwindow.cpp: fix up a few debug strings. - src/{onmainwindow.{cpp,h},configdialog.cpp}: remove userSshd variable and code related to non-user-mode-sshd setups. Simplifies code a bit and we want to always start a user-mode OpenSSH server anyway. Also get rid of the clientport variable that is now unnecessary. - src/onmainwindow.cpp: when starting sshd on Unix-based plattforms, raise maximum startup time to 5 seconds and break out early, if the process went into running state earlier. - src/onmainwindow.cpp: uppercase key type in debug output and comment string in generateKey (). - src/onmainwindow.cpp: terminate sshd more correctly. First via terminate (), then wait up to 5 seconds, then via kill (). - src/onmainwindow.{cpp,h}: add new function check_key_type (). Takes a key type and checks for validity/if it's known. - src/onmainwindow.{cpp,h}: add new function key_type_to_string (). Returns a stringified version of the selected key type, after checking for validity. - src/onmainwindow.{cpp,h}: add new function default_size_for_key_type (). Returns the default key size in bits for the selected key type, after checking for validity. - src/onmainwindow.cpp: use the new functions in generateKey (). - src/onmainwindow.h: move generateKey () declaration around. - src/onmainwindow.{cpp,h}: reformat generateKey () only. - src/onmainwindow.{cpp,h}: move createRSAKey () around. - src/onmainwindow.{cpp,h}: reformat createRSAKey () only. - src/onmainwindow.cpp: let startSshd () act as a wrapper and be called multiple times. Check if the OpenSSH Server is already running and return true, otherwise try to start it. - src/onmainwindow.cpp: add some comments only to createRSAKey (). - src/onmainwindow.{cpp,h}: rename createRSAKey () to the more-appropriate name createKeyBundle (). Also add a key-type parameter and use it to select the required key type (and maybe generate it if necessary.) Also use the new functions to get a stringified version of the key type etc. - macbuild.sh: switch to bundling PA 9.0. - src/onmainwindow.cpp: move QProcess startup check in startSshd () to non-Windows code section and add a listening socket check loop. Windows uses other means of starting the daemon. - src/onmainwindow.cpp: add comment to last all-in listening check in startSshd (). - src/onmainwindow.cpp: add listening-check loop to the Windows-specific code of startSshd (). - src/onmainwindow.{cpp,h}: make startSshd () private. There's no need to keep it public, as only class-internal functions are using it. - src/onmainwindow.{cpp,h}: add ssh_key_type_ member variable and getter and setter to WinServerStarter class. - src/onmainwindow.{cpp,h}: add SSH key type parameter to startSshd (). - src/onmainwindow.cpp: pass new ssh_key_type_ member to startSshd () call in WinServerStarter::run (). - src/onmainwindow.cpp: pass key_type parameter to startSshd () in createKeyBundle (). - src/onmainwindow.cpp: add and use key_types parameter to startWinServers (). - src/onmainwindow.cpp: actually use key_type parameter in startSshd () and make selection more generic. - src/onmainwindow.h: move WinServerStarter class definition around to hopefully get the definition of ONMainWindow::key_types. - src/onmainwindow.h: remove WWrapper definition, seems to be unused. - src/onmainwindow.{cpp,h}: don't try to initialize non-static ssh_key_type_ member variable directly, but in the constructor. Also, use the initializer list to initialize the other member variables directly. - src/onmainwindow.cpp: re-order initializer list of WinServerStarter constructor. - src/onmainwindow.h: actually, we do need startSshd () to be public. Move it back. - src/onmainwindow.cpp: only pass non-Cygwin paths to QFile::exists () in generateKey (). Refactor a bit to drop the now-unnecessary ret variable. - src/onmainwindow.cpp: use QFileInfo to get the key file's basename in exportDirs () instead of the old, potentially faulty string replace dance. - src/x2goutils.{cpp,h}: make find_binary () and add_to_path () available on all UNIX-based operating systems. We will need it for sftp-server discovery. - src/pulsemanager.cpp: refactor PA binary searching code. Less duplication now. - src/onmainwindow.cpp: fix sshd_config generation on UNIX by searching for the real sftp-server binary path. - src/pulsemanager.cpp: fix PA binary searching logic. We don't want to unconditionally set system_pulse_ to true if we found a binary... it might as well be the bundled one... - src/onmainwindow.cpp: move generateEtcFiles () call to startSshd (). We must make sure that the sshd_config file exists and is up-to-date, so let's always do it right before starting the sshd binary. - src/onmainwindow.cpp: stop duplicating the list of known sftp-server binary locations. - src/{onmainwindow,pulsemanager}.cpp: actually *use* what we got back from add_to_path ()... Fixes a few bugs here and there. - src/onmainwindow.cpp: remove trailing slash from Mageia/SUSE/Arch sftp-server binary search path. - src/x2goutils.cpp: add debugging output to add_to_path (). - src/x2goutils.cpp: fix add_to_path (). We want to remove trailing slashes from elements-to-add, not just fetch a trailing slash if encountered. Also, better don't compare a value from the original path value to itself, but rather to the things we want to add in order to remove duplicates, not remove most of the list of elements to add... - src/unixhelper.cpp: use cstdio instead of stdio.h. It's the C++ header and imports functions into the std namespace. - src/: create new file unix_stdint.h which imports the (u)int*_t types into the std namespace. - src/pulsemanager.h: use unix_stdint.h on non-Windows-platforms to get std::(u)int*_t types without having to use C++11. - src/pulsemanager.cpp: fix Linux-based code by fixing a really stupid typo ("erange" instead of "errno") and including the cerrno header. - src/pulsemanager.cpp: use std::ssize_t for the path length, because it could be -1 and std::size_t is not applicable. - src/pulsemanager.cpp: cast the return value of realloc () to char*, as GCC doesn't seem to like reassigning the pointer otherwise. - src/unix_stdint.h: use same hack to import ssize_t into std namespace. - src/onmainwindow.{cpp,h}: remove left-over parec references and code. - src/onmainwindow.cpp: convert piece of code to non-Windows and non-Darwin, so that not only Linux but other operating systems are covered as well. - src/mediawidget.cpp: unify some redundant code. - src/mediawidget.cpp: simplify expression. - src/mediawidget.cpp: add deprecation warning for ARTS. - src/mediawidget.cpp: add deprecation warning for ESounD. - macbuild.sh: make compatible with new llvm-based otool binary, which now uses proper return values. Be backwards-compatible with otool-classic. - res/i18n/: refresh translation files. - deduplicate.sh: remove file, now obsolete and merged into macbuild.sh. - res/i18n/: refresh translation files again after copyright date changes. - res/i18n/x2goclient_fr.ts: fixup French translation file. - res/i18n/x2goclient_sv.ts: fixup Swedish translation file a little bit and add comments/requests for re-translations for the next time. - macbuild.sh: switch to bundling PulseAudio 10.0 since it's now available in MacPorts. - src/x2goclient.cpp: no need to put new_argv_c_str std::vector onto the heap. Keep it on the stack. - src/x2goclient.cpp: use $PATH-exploration when re-executing x2goclient in UNIX cleanup helper mode. Fixes: #1139. - src/onmainwindow.cpp: correctly initialize pulseManager and pulseManagerThread member variables. Fixes crashes on OS X and Windows if X2Go Client terminates before these objects have been created at run time (for instance when running x2goclient --help.) - src/onmainwindow.cpp: correctly guard the new lines from the previous commit. Fixes compile issues on Linux and other systems. - res/i18n/x2goclient_es.ts: fixup Spanish translation file where necessary and add comments/requests for re-translations for the next time. - res/i18n/x2goclient_es.ts: remove obsolete comments and very minor whitespace fixup. - res/i18n/x2goclient_de.ts: fixup German translation file, including typo, whitespace, grammar fixes and other stuff. - res/i18n/x2goclient_sv.ts: remove obsolete comments and very minor whitespace fix. - macbuild.sh: sanitize find input, as BSD find and GNU find behave differently. - macbuild.sh: get rid of problems and use gfind directly. We need special GNU features. - src/appdialog.cpp: logic so that X2Go-Top applications are shown again. Used faulty logic when silencing compiler warnings. - res/i18n/x2goclient_fi.ts: fix up Finnish translation file, including typo, whitespace fixes and marking untranslated entries as such again, after removing the English "translation" text. . [ Bernard Cafarelli ] * New upstream version (4.1.0.0): - {res/,x2goclient.pro}: rename .rcc files to .qrc. Fixes: #1096. "rcc" is the extension for compiled resource files, whereas "qrc" is the mapping file. Qt5 stumbles upon that - i.e., it doesn't try to compile files with the "rcc" extension, while Qt4 did. - res/: fix up previous change, the renaming of changelog.qrc was not correctly committed. . [ Jason Alavaliant ] * New upstream version (4.1.0.0): - src/{onmainwindow.{cpp,h},help.cpp}: modify autostart option to support multiple autostart apps at the same time. Fixes: #1024. . [ Oleksandr Shneyder ] * New upstream version (4.1.0.0): - src/onmainwindow.cpp: fix SSHFS on Windows client. Fixes: #1105. . [ Sébastien Ducoulombier ] * New upstream version (4.1.0.0): - res/i18n/x2goclient_fr.ts: update French translation file. . [ Daniel Lindgren ] * New upstream version (4.1.0.0): - res/i18n/x2goclient_sv.ts: update Swedish translation file. - res/i18n/x2goclient_sv.ts: fixup Swedish translation file. . [ Ricardo Díaz Martín ] * New upstream release (4.1.0.0): - res/i18n/x2goclient_es.ts: update Spanish translation file. - res/i18n/x2goclient_es.ts: update Spanish translation file. . [ Stefan Baur ] * New upstream release (4.1.0.0): - res/i18n/x2goclient_de.ts: update German translation file. . [ Martti Pitkänen ] * New upstream version (4.1.0.0): - res/i18n/x2goclient_fi.ts: update Finnish translation file.
Send a report that this bug log contains spam.
Debbugs is free software and licensed under the terms of the GNU Public License version 2. The current version can be obtained from https://bugs.debian.org/debbugs-source/.
Copyright © 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson, 2005-2017 Don Armstrong, and many other contributors.