Subject: X2Go issue (in src:x2goserver) has been marked as closed

From: X2Go Release Manager X2Go Release Manager <[email-masked]>
Date: Tue, 30 May 2023 20:57:50 +0200 (CEST)

close #1538
thanks

Hello,

we are very hopeful that X2Go issue #1538 reported by you
has been resolved in the new release (4.1.0.4) of the
X2Go source project »src:x2goserver«.

You can view the complete changelog entry of src:x2goserver (4.1.0.4)
below, and you can use the following link to view all the code changes
between this and the last release of src:x2goserver.

    https://code.x2go.org/gitweb?p=x2goserver.git;a=commitdiff;h=1e0b9ce01552566da356f8f4e69b674e900b0557;hp=c42cc7f8d2c6b0f4e127bdf5f4e4c3e47045cfa7

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:x2goserver.

Thanks a lot for contributing to X2Go!!!

light+love
X2Go Git Admin (on behalf of the sender of this mail)

---
X2Go Component: src:x2goserver
Version: 4.1.0.4-0x2go1.2
Status: RELEASE
Timestamp: 1685472549
Date: Tue, 30 May 2023 20:49:09 +0200
Fixes: 1228 1357 1388 1395 1434 1537 1538 1583
Changes:
 x2goserver (4.1.0.4-0x2go1.2) RELEASED; urgency=medium
 .
   [ Mike Gabriel ]
   * New upstream version (4.1.0.4):
     - Fix version number in VERSION.x2goserver-desktopsharing.
     - x2goserver-x2goagent: Drop x2goagent.keyboard file.
     - x2goversion: Fix situations where ${compfile} contains a
       non-absolute path (e.g. it contains '../'). (Fixes: #1357).
     - Add X2Go KDrive support (wrapper package: x2goserver-x2gokdrive).
     - Add man page for x2gocleansessions.
     - x2goserver/man/man8/x2golistsessions_root.8: Mention --all-servers
       option. (Fixes: #1395).
     - x2goruncommand: Support GNOME-based Ubuntu sessions (via X2Go Kdrive)
       as provided by Ubuntu 18.04 or later.
     - GNOME sessions: Avoid firing up of a polkit-1 authentication dialog
       requesting admin credentials to register a new color map device.
       See GNOME bug:
       https://gitlab.gnome.org/GNOME/gnome-settings-daemon/issues/273
       This change only gets activated for Debian for now and focuses
       on policykit-1 (<= 0.105). (Debian maintainers of policykit-1
       are holding back newer versions for unknown reason).
     - Makefile: Create symlink from /etc/x2go/Xsession.options.d/ to
       /etc/X11/Xsession.options.d on Debian-like systems.
     - x2goserver/man/man8/x2gocleansessions.8: Update man page.
   * debian/x2goserver.postinst:
     + Drop duplicate sourcing of debconf includes.
     + Add Dutch debconf translation. Thanks to Frans Spiesschaert.
     + Add Russian debconf translation. Thanks to Lev Lamberov.
     + Add Portuguese debconf translation. Thanks to Américo Monteiro.
     + Update German translation.
   * debian/control:
     + Update (LONG_)DESCRIPTION of bin:pkg x2goserver-x2goagent.
     * Drop base64 from D (x2goserver): A bin:pkg does not exist,
       the bas64 executable is shipped as part of coreutils (which
       is an essential package and thus does not need a dependency).
   * debian/x2goserver.manpages:
     + Install x2goupdateoptionsstring.1* man pages into bin:pkg x2goserver.
   * x2goserver.spec:
     + Update (LONG_)DESCRIPTION of bin:pkg x2goserver-x2goagent.
     + Fix up files section for x2gokdrive (wrong pkg name).
 .
   [ Mihai Moldovan ]
   * New upstream version (4.1.0.4):
     - x2goserver/sbin/x2gocleansessions: add newline before POD block.
     - x2goserver-x2goagent/man/man1/x2goagent.1: add version and date.
     - x2goserver/Makefile: generate man pages from Perl POD.
     - X2Go/Utils.pm: fix missing semicolons.
     - X2Go/Utils.pm: add new is_int subroutine, checking if the provided value
       is an integer.
     - x2goserver/lib: new x2goisint wrapper.
     - x2goserver/lib/x2gois{int,true}: add newlines to (error) output.
     - x2goserver/lib/x2gois{int,true}: add optional warnings.
     - x2goserver/sbin/x2gocleansessions: rework manpage/POD.
     - x2goserver/lib: add new (stub) file x2goupdateoptionsstring to deal with
       options string manipulations. Currently only parsing into an
       intermediate state is supported, the script dumps that state for now.
     - x2goserver/lib/x2goupdateoptionsstring: add function to transform the
       intermediate options string representation back into a string and some
       code that uses this new function.
     - x2goserver/lib/x2go{is{int,true},updateoptionsstring}: use q{} instead
       of empty quotes as per some... coding standard.
     - x2goserver/lib/x2go{is{int,true},updateoptionsstring}: wrap print calls
       with filehandles in curly braces.
     - x2goserver/lib/x2goupdateoptionsstring: fix some "errors" reported by
       Perl::Critic in brutal mode.
     - x2goserver/lib/x2goupdateoptionsstring: add functionality for options
       removal.
     - x2goserver/lib/x2goupdateoptionsstring: update documentation to include
       the notion of the +key[=value] syntax, which makes sense to use if key
       starts with a dash and would be ambiguously interpreted as a removal.
     - x2goserver/lib/x2goupdateoptionsstring: refactor remove_option
       subprocedure into a more general transform_intermediate one and add code
       for the modification/addition case.
     - x2goserver/lib/x2goupdateoptionsstring: ignore some very noisy
       Perl::Critic warnings that we're going to ignore anyway.
     - x2goserver/lib/x2goupdateoptionsstring: fix interpolated string warning.
     - x2goserver/lib/x2goupdateoptionsstring: add helper function for
       transform string interpretation.
     - x2goserver/lib/x2goupdateoptionsstring: write wrapper that handles
       program options, creates intermediate, passes through transform chains,
       reconverts to a string and prints it.
     - x2goserver/lib/x2goupdateoptionsstring: add debug option and some
       debugging output.
     - x2goserver/lib/x2goupdateoptionsstring: remove dead code.
     - x2goserver/lib/x2goupdateoptionsstring: update documentation and clarify
       risks of option parsing. It's better to always use -- to terminate
       program options parsing when no longer needed.
     - x2goserver/lib/x2goupdateoptionsstring: don't debug-output the
       intermediate representation if we know that parsing failed.
     - x2goserver/lib/x2goupdateoptionsstring: fix debug string and add another
       one dumping the raw options string.
     - x2goserver/lib/x2goupdateoptionsstring: fix parsing of transformation
       strings by replacing the switch statement with if statements.
       "Fallthrough" doesn't mean the same thing as in C, apparently. Buyer
       beware.
     - x2goserver/lib/x2goupdateoptionsstring: handle options in a more robust
       way. First, we scan for unknown options and error out. If we find a
       separating "--" pseudo-option, we keep that in mind and will not process
       further options next time. Do this for every run of the transformation
       loop.
     - x2goserver/lib/x2goupdateoptionsstring: fix another Perl::Critic nit.
     - x2goserver/lib/x2goupdateoptionsstring: move into x2goserver/bin, since
       it's really a standalone program and also useful for non-X2Go-internal
       usage.
     - x2goserver/Makefile: add x2goupdateoptionsstring POD-to-man-page
       handling.
     - x2goserver/Makefile: don't quote POD_SCRIPTS, because of... make.
     - x2goserver/Makefile: install man1 files and dirs, too.
     - x2goserver/bin/x2goruncommand: fix typo in IceWM branch.
     - X2Go_in_progress_do_not_use/Server/DB/MySQL.pm: backport kdrive change.
     - x2goserver/bin/x2gostartagent: fix quoting.
     - x2goserver/bin/x2gostartagent: adapt debug message to ${AGENTBIN} usage.
     - x2goserver/bin/x2gostartagent: also use ${AGENTBIN} in shadow session
       code.
     - x2goserver/bin/x2goruncommand: fix syntax.
     - x2goserver/Makefile: allow auto-generation of files, including
       installation, uninstallation and cleanup.
     - x2goserver/bin: rename x2gopath to x2gopath.in.
     - x2goserver/bin/x2gopath.in: use ${BASH_SOURCE[0]} instead of ${0}... for
       reasons.
     - x2goserver/bin/x2gopath.in: rework quoting, variable usage, drop
       unnecessary semicolons etc.
     - x2goserver/bin/x2gopath.in: hardcode LIBDIR, PREFIX and SHAREDIR at
       build time, but also allow re-rooting afterwards - derived from the
       original values.
     - Makefile: specify SHAREDIR as a default-if-not-specified variable.
     - Makefile: same change, but for ETCDIR.
     - {libx2go-server-db-perl,x2goserver{,-{common,desktopsharing,extensions,
                                             fmbindings,printing,x2goagent,
                                             xsession}}}/Makefile: apply
       default-if-not-specified-logic to all the other Makefiles as well.
     - x2goserver/Makefile: add support for $(NXLIBDIR).
     - x2goserver/bin/x2gopath.in: switch to bash.
     - x2goserver/bin/x2gopath.in: fix warning message to also include
       SHAREDIR.
     - x2goserver/bin/x2gopath.in: add and use support for NXLIBDIR; drop the
       lib-subdir detection.
     - x2goserver/bin/x2gopath.in: use [] instead of test, for consistency.
     - x2goserver/Makefile: remove indirections, not needed any longer and
       leading to build failures now.
     - x2goserver/Makefile: fix "inline" commenting syntax. Wrapping everything
       as one string leads to the shell interpreting it as a verbatim command,
       which will fail execution. Dropping quotes SHOULD™ work, but doesn't,
       because the outer shell is treating as a comment for itself - leading to
       it ignoring everything else on that line, including the closing
       parenthesis. Escaping the hash char only leads to the initial situation
       with it being parsed as a comment. Backticks would work, but are ugly.
       Hence, just use the colon pseudo-command.
     - x2goserver/Makefile: fix syntax error due to non-duplicated dollar signs
       in comment lines.
     - x2goserver/Makefile: export common variables for direct use in shell
       script sections.
     - x2goserver/Makefile: build up sed argument line as an array and use one
       substitution run. Multiple runs with the template file as input will
       lead to only the last replacement to stick in the resulting generated
       script, which is not what we want to have. Correctly doing that with
       multiple runs would require the usage of temporary files, which is
       needlessly complicated in this context.
     - x2goserver/Makefile: fix shell quoting issue with newly exported
       ${DESTDIR} variable.
     - x2goserver/bin/x2gopath.in: more test -> [] conversion.
     - x2goserver/bin/x2gopath.in: output warning messages if directories do
       not exist.
     - x2goserver-xsession/Makefile: correctly generate Xsession symlinks when
       building on Devuan. No special conffile handling here since we don't
       actually build Devuan packages.
     - x2goserver-xsession/Makefile: same for rt-os.
     - x2goserver-xsession/etc/Xsession: add support for Slackware in the
       RPM-based section.
     - x2goserver-xsession/Makefile: generate RPM-based symlinks for Slackware.
     - x2goserver/bin/x2gopath.in: more quoting.
     - x2goserver/bin/x2gopath.in: avoid spurious warning messages by
       canonicalizing installed path values.
     - x2goserver/bin/x2gopath.in: avoid double slashes since we now know that
       paths will be canonical.
     - x2goserver/bin/x2gopath.in: make xinerama path optional, newer releases
       don't use it any longer, so failures to find it should not result in a
       warning message.
     - x2goserver-common/etc/x2goserver.conf: add x2gocleansessions section and
       agent-startup-time configurable option, to be set to the allowed time
       period in seconds between session creation and agent PID insertion into
       the database.
     - x2goserver/sbin/x2gocleansessions: fetch and sanity-check
       x2gocleansessions.agent-startup-time from config file.
     - x2goserver/sbin/x2gocleansessions: rework comment explaining what a
       session without an agent PID entry actually means and use the value from
       x2gocleansessions.agent-startup-time (if valid) instead of a hardcoded
       value.
     - x2goserver/sbin/x2gocleansessions: replace time check with PID validity
       check in check_pid and calls. The time check was really just a
       workaround to allow the agent to start up after a session was formally
       created, but we already have such a check in another place. Instead,
       treat a missing PID, which can only happen during session startup, as a
       success.
     - x2goserver/bin/x2goupdateoptionsstring: simplify a for loop a bit.
     - x2goserver/bin/x2goupdateoptionsstring: fix typo in comment.
     - x2goserver/bin/x2goupdateoptionsstring: fix typo in print statement
       syntax. Non-functional.
     - x2goserver/bin/x2goupdateoptionsstring: update copyright notice.
     - X2Go/Server/Agent/: add new (stub) file NX/Options.pm as a library
       version of the options string manipulation code.
     - x2goserver/bin/x2goupdateoptionsstring: fix man page specification,
       options string was missing.
     - x2goserver/bin/x2goupdateoptionsstring: move most code to
       X2Go/Server/Agent/NX/Options.pm.
     - x2goserver/bin/x2goupdateoptionsstring: revert for loop simplification.
       We actually depend on the subtle modification of the args reference
       variable.
     - X2Go/Server/Agent/NX/Options.pm: add a lot of documentation.
     - x2goserver/bin/x2goupdateoptionsstring: update synopsis to include the
       optional character of a plus sign, but a non-optional character for a
       minus sign.
     - x2goserver/bin/x2goupdateoptionsstring: make clear that "additional
       parameters" are transformations.
     - x2goserver/bin/x2goupdateoptionsstring: replace occurrences of "option
       string" with "options string".
     - X2Go/Server/Agent/NX/Options.pm: replace occurrences of "option string"
       with "options string".
     - X2Go/Server/Agent/NX/Options.pm: document that duplicate keys in the
       input options string are possible and accepted, but actually discouraged
       and semantically redundant.
     - X2Go/Server/Agent/NX/Options.pm: whitespace-only in comment.
     - X2Go/Server/Agent/NX/Options.pm: add and use an enum-like construct as
       the internal mode selector for transforms.
     - X2Go/Server/Agent/NX/Options.pm: rename options parameter in
       transform_intermediate to intermediate.
     - X2Go/Server/Agent/NX/Options.pm: document key-value pairs with either
       empty keys or empty (!= non-existent) values.
     - X2Go/Server/Agent/NX/Options.pm: make sure that intermediates never
       include undef entries.
     - x2goserver/bin/x2goupdateoptionsstring: switch to "X2Go/NX Agent" term
       and make it bold to denote something special.
     - X2Go/Server/Agent/NX/Options.pm: add new function compact_intermediate,
       used to remove duplicated and empty elements.
     - x2goserver/bin/x2goupdateoptionsstring: add new --compact/-c switch to
       enable the use of compactation.
     - x2goserver/bin/x2goupdateoptionsstring: document new --compact/-c
       switch.
     - x2goserver/bin/x2goupdateoptionsstring: split up GetOptionsFromArray ()
       line. Non-functional.
     - X2Go/Server/Agent/NX/Options.pm: document the new
       compact_intermediate () function and its implications.
     - X2Go/Server/Agent/NX/Options.pm: fix some Perl Critic warnings and
       silence others.
     - x2goserver/bin/x2goupdateoptionsstring: fix some Perl Critic warnings
       and silence others.
     - X2Go/Server/Agent/NX/Options.pm: grammar/typo fix in comment and improve
       a different comment.
     - X2Go/Server/Agent/NX/Options.pm: avoid copying arrays if not necessary
       when passing to grep and map operations.
     - X2Go/Server/Agent/NX/Options.pm: rework the lastly modified comment
       again, the changed explanation didn't match the reality.
     - X2Go/Server/Agent/NX/Options.pm: fix typos in internal section links.
     - X2Go/Server/Agent/NX/Options.pm: add newline before __END__,
       non-functional.
     - {X2Go/Server/Agent/NX/Options.pm,
        x2goserver/bin/x2goupdateoptionsstring}: add =pod markers.
     - {X2Go/Server/Agent/NX/Options.pm,
        x2goserver/bin/x2goupdateoptionsstring}: update AUTHOR sections with
       proper links.
     - X2Go/Server/Agent/NX/Options.pm: fix nxagent man page link.
     - x2goserver/bin/x2goupdateoptionsstring: considerably simplify while loop
       logic that iterates over transformations. I have no idea why I thought
       it had to be so complicated in the first place...
     - {X2Go/Server/Agent/NX/Options.pm,
        x2goserver/bin/x2goupdateoptionsstring}: reformat/reflow so that each
       sentence starts on a proper line. This is particularly interesting for
       the troff output, since GNU troff's heuristic for generating double
       spaces (by default) after a punctuation character wouldn't trigger
       otherwise. Since it has no adverse effects on other generators, let's
       just do it like that.
     - X2Go/Server/Agent/NX/Options.pm: replace "treat as" with "treat like".
     - X2Go/Server/Agent/NX/Options.pm: clear up "logically equivalent but
       logically very different" situation.
     - x2goserver/bin/x2goupdateoptionsstring: rename EXAMPLE section to
       EXAMPLES.
     - x2goserver/bin/x2goupdateoptionsstring: add links to
       X2Go::Server::Agent::NX::Options documentation on option strings and
       transformations.
     - x2goserver/bin/x2goupdateoptionsstring: document how to cheat and just
       compact options strings.
     - x2goserver/bin/x2goupdateoptionsstring: add options terminators to
       example calls.
     - X2Go/Server/Agent/NX/Options.pm: document that NUL bytes can only be
       URL-encoded, but that this not recommended.
     - X2Go/Server/Agent/NX/Options.pm: typo compactation => compaction.
     - X2Go/Server/Agent/NX/Options.pm: whitespace-only on fake enum-subs.
     - X2Go/Server/Agent/NX/Options.pm: add empty BEGIN block in case it's ever
       needed (and if not, it shouldn't have any side effects anyway).
     - x2goserver/bin/x2goupdateoptionsstring: add space between link and
       punctuation character for easier copying.
     - x2goserver/bin/x2goupdateoptionsstring: better document end-of-options
       terminator and highlight its importance.
     - X2Go/Server/Agent/NX/Options.pm: reflow some text.
     - X2Go/Server/Agent/NX/Options.pm: document other non-printable
       characters.
     - x2goserver/bin/x2goupdateoptionsstring: add comment regarding the
       shift () operations after sanitizing program options.
     - X2Go/Server/Agent/NX/Options.pm: if ("string") in Perl does something
       weird in a dualvar sense - it converts a string to a number, which
       typically evaluates into a plain "0" if it doesn't start with any
       digits. We actually meant to check against an empty string. Also,
       change the whole expression to not enclose everything in a negation but
       rather negate sub-terms as required.
     - X2Go/Server/Agent/NX/Options.pm: make sure to add/modify elements with
       an empty string or undef key and an undef value as an empty hash.
     - x2goserver/bin/x2goupdateoptionsstring: fix parsing of multiple
       subsequent separating "--" pseudo-options. We just have to make sure to
       treat subsequent pseudo-options literally and to not just consume them.
     - x2goserver/bin/x2goupdateoptionsstring: add debug print statements for
       in-depth examination of program options parsing.
     - x2goserver/bin/x2goupdateoptionsstring: add mode selection
       functionality.
     - X2Go/Server/Agent/NX/Options.pm: port modes "enum" subs to the constant
       pragma to make the code more consistent with the program wrapper.
     - {X2Go/Server/Agent/NX/Options.pm,
        x2goserver/bin/x2goupdateoptionsstring}: update Perl critic overrides
       to allow the constant pragma and document it and other overrides
       (unless they are self-explanatory).
     - x2goserver/bin/x2goupdateoptionsstring: rework mode selection, split out
       abbreviation parsing into a separate function to take out nesting
       complexity. This trades off nesting complexity (to some degree) with
       code complexity.
     - {X2Go/Server/Agent/NX/Options.pm,
        x2goserver/bin/x2goupdateoptionsstring}: fix/silence a few Perl::Critic
       warnings.
     - x2goserver/bin/x2goupdateoptionsstring: typo fix in output message only.
     - x2goserver/bin/x2goupdateoptionsstring: remove obsolete comment, we're
       not using a do block/do-while loop any longer. While the information
       provided there might be an interesting tidbit, it's not relevant to the
       code any longer and might actually confuse readers.
     - X2Go/Server/Agent/NX/Options.pm: undef can't be referenced, so
       adjust/fix the comments.
     - x2goserver/bin/x2goupdateoptionsstring: more typo fixes in output
       messages only.
     - x2goserver/bin/x2goupdateoptionsstring: generalize code looping through
       program arguments and split out transformation operation into own
       subroutine.
     - {X2Go/Server/Agent/NX/Options.pm,
        x2goserver/bin/x2goupdateoptionsstring}: enable Unicode handling, as
       far as possible.
     - {X2Go/Server/Agent/NX/Options.pm,
        x2goserver/bin/x2goupdateoptionsstring}: fatalize text coding errors.
     - x2goserver/bin/x2goupdateoptionsstring: sanitize/convert data in @ARGV.
     - x2goserver/bin/x2goupdateoptionsstring: add non-functional extraction
       mode. Needs proper implementation.
     - x2goserver/bin/x2goupdateoptionsstring: fix syntax and strict mode
       errors.
     - X2Go/Server/Agent/NX/Options.pm: simplify error handling by splitting
       intermediate checking out into a separate subroutine.
     - X2Go/Server/Agent/NX/Options.pm: rename $options variable to
       $intermediate in intermediate_to_string () for internal consistency.
     - X2Go/Server/Agent/NX/Options.pm: document that subroutines and constants
       that are not marked for export are internal and should not be used.
       Usually, that should implicitly be clear, but it doesn't hurt to be
       verbose with a disclaimer.
     - X2Go/Server/Agent/NX/Options.pm: add extract_element subroutine, used to
       extract key-value pairs. This one will be exportable, too. Documentation
       to be done.
     - x2goserver/bin/x2goupdateoptionsstring: correctly use MIME::Base64.
     - x2goserver/bin/x2goupdateoptionsstring: actually implement extraction
       mode.
     - x2goserver/bin/x2goupdateoptionsstring: don't encode/decode in-place.
     - {X2Go/Server/Agent/NX/Options.pm,
        x2goserver/bin/x2goupdateoptionsstring}: explicitly use package foreign
       package names all across the code for consistency.
     - x2goserver/bin/x2goupdateoptionsstring: fix typos in documentation and
       reword misinterpreted-as-options section.
     - x2goserver/bin/x2goupdateoptionsstring: document mode selection and
       extraction mode.
     - x2goserver/bin/x2goupdateoptionsstring: fix error handling for kv-pair
       extraction.
     - x2goserver/bin/x2goupdateoptionsstring: add base64 encode and decode
       helpers, add new --base64 parameter that enabled global use of base64.
     - X2Go/Server/Agent/NX/Options.pm: actually check for a specific value in
       the kv-pair filter function if so specified. Big oops.
     - x2goserver/bin/x2goupdateoptionsstring: extend extraction example for
       how to check for full key-value pair combinations.
     - x2goserver/bin/x2goupdateoptionsstring: document the new base64
       pseudo-mode.
     - x2goserver/bin/x2goupdateoptionsstring: an equal sign or space character
       is mandatory after the -m or --mode switch.
     - X2Go/Server/Agent/NX/Options.pm: document key-value pair extraction.
     - x2goserver/bin/x2goupdateoptionsstring: fix some Perl::Critic warnings.
     - x2goserver/bin/x2goupdateoptionsstring: encode/decode to/from shell
       locale.
     - x2goserver/bin: rename x2goupdateoptionsstring to x2gooptionsstring.
       It's not just modifying it any longer.
     - x2goserver/Makefile: rename x2goupdateoptionsstring to
       x2gooptionsstring.
     - x2goserver/bin/x2gooptionsstring: rename x2goupdateoptionsstring to
       x2gooptionsstring.
     - x2goserver/bin/x2gostartagent: fetch the agent PID as early as possible.
     - x2goserver/bin/x2gooptionsstring: actually default to transformation
       mode if none was explicitly selected.
     - x2goserver/bin/x2goresume-session: make (most) non-exported variables
       lowercase, rename variables to more descriptive names, use typeset all
       over the place and change the variable type for some variables. Mostly
       non-functional changes.
     - x2goserver/bin/x2goresume-session: use global-scope msg variable.
     - x2goserver/bin/x2goresume-session: update copyright notice.
     - x2goserver/bin/x2goresume-session: use printf more often instead of the
       not-so-portable echo builtin.
     - x2goserver/bin/x2goresume-session: fix err_msg => msg usage.
     - x2goserver/bin/x2gooptionsstring: replace uses of C<> with B<> in cases
       where the generated output of the C<> sequence might enclose it in
       double quotes and creates confusing documentation strings.
     - X2Go/Server/Agent/NX/Options.pm: same C<>-to-B<> conversion as in the
       previous commit.
     - x2goserver/bin/x2goresume-session: simplify where possible, use
       x2gooptionsstring instead of awk field splitting hackery.
     - x2goserver/bin/x2goresume-session: fix redirections and make script
       workable again. Shells do not like redirections like 'filedes'>'file'
       and interpret 'filedes' as an argument to the program instead of as a
       file descriptor to be used for the redirection, even though 'filedes'
       might be something like '2'.
     - x2goserver/bin/x2goresume-session: fix clipboard handling. The
       "${clipboard}" variable already includes the "clipboard" key.
     - x2goserver.spec: escape percent signs in comments, getting rid of
       warnings in obs-build's spec file parser.
     - x2goserver-xsession/Makefile: drop useless use of cat, add debugging to
       see whether symlinks or a directory has been added.
     - x2goserver-xsession/Makefile: support Tumbleweed with Xresources in
       /usr/etc.
     - x2goserver.spec: support UsrEtc(Move) for OpenSuSE Tumbleweed for
       Xresources symlink.
     - x2goserver-xsession/etc/Xsession: check for *SuSE via
       /usr/lib/os-release and /etc/os-release and generally refine checking
       layout a bit.
     - x2goserver-xsession/Makefile: Xresources is a file, not a directory.
     - x2goserver.spec: Xresources symlink stays in /etc/x2go for now, no need
       to use %{_distconfdir} or the like.
     - x2goserver-xsession/Makefile: on systems that do not provide a global
       /etc/X11/Xresources file, create a dangling symlink instead. Unbreaks
       Debian builds.
     - x2goserver.spec: add BR: and R: on distribution-release
       (pseudo-package/provides) for /usr/lib/os-release and /etc/os-release.
     - X2Go/Server/Agent/NX/Options.pm: fix typo in test comment.
     - x2goserver/bin/x2goruncommand: add support for KDE Plasma 5
       (startplasma-x11).
     - misc: copyright updates, but for contributors who haven't been active.
     - misc manpages: pre-release date update.
   * debian/control:
     + Build-depend upon lsb-release for distro version detection.
     + Pull in base64 as a run-time dependency. We'll need it in scripts.
     + Fix description for x2goserver-x2gokdrive.
   * debian/x2goserver.manpages:
     + Install x2gocleansessions man page.
     + Install x2goupdateoptionsstring man page.
     + Rename x2goupdateoptionsstring to x2gooptionsstring.
   * x2goserver.spec:
     + Install new x2goisint wrapper.
     + Install section 1 man pages.
     + Exclude x2goagent man page from x2goserver package.
     + Pass down LIBDIR via make calls, not by modifying all source files with
       sed.
     + X2Go KDrive package has been renamed to xorg-x11-server-x2gokdrive to be
       in line with general RPM package names.
     + Add dependency upon perl(Encode::Locale) for older distros. Others ship
       the module as part of core.
     + Add run-time base64 dependency.
     + Remove run-time base64 dependency - part of coreutils.
     + Fix description for x2goserver-x2gokdrive.
     + Add R: x2goserver-x2gokdrive to x2goserver package, to always pull it in
       as a dependency. This means that we MUST also provide the KDrive server
       for the platforms that we provide X2Go Server for.
     + Exclude KDrive support for old Fedora, RHEL/CentOS/... and *SuSE
       distribution versions.
     + If we don't support KDrive for a platform, remove the associated files.
   * debian/x2goserver.install:
     + Install bin/x2goupdateoptionsstring.
     + Rename x2goupdateoptionsstring to x2gooptionsstring.
   * debian/rules:
     + Export and pass down LIBDIR.
     + Fix standalone make call by specifying PREFIX, NXLIBDIR and LIBDIR
       explicitly.
     + Fix quoting. Since make does not interpret single or double quotes, each
       string should only be quoted once (so that the shell can parse the
       quoted result). Quote the values in the variable directly and try not to
       "double-quote" the resulting string.
     + Remove unintentional addition of USE_GTK variable.
     + Port new OS version detection code from X2Go Client, which also fixes
       detecting testing and unstable.
   * debian/libx2go-server-perl.install:
     + Remove duplicated entry for X2Go/Utils.pm.
   * debian/x2goserver.init:
     + Rewrite init script to make it idempotent and actually check if the
       cleanup service was started correctly.
 .
   [ Oleksandr Shneyder ]
   * New upstream version (4.1.0.4):
     - Add support for X2Go KDrive.
     - x2goruncommand: start Xsession on X2Go KDrive desktops.
     - x2goterminate-session: terminate x2goruncommand and all processes
       from the group.
     - Support for rootless X2GoKdrive sessions.
     - Setting keyboard layout in rootless X2GoKdrive sessions.
     - x2gostartagent: save the XDMCP server in the session id.
     - x2goterminatesession: don't terminate x2goruncommand on XDMCP sessions.
     - setting keyboard layout by agent start and resuming for kdrive sessions.
     - remove layout debug output from x2go-resumesession.
 .
   [ Orion Paplowski ]
   * New upstream version (4.1.0.4):
     - x2goserver-xsession/etc/Xsession: Detect $SHELL from getent passwd
       and use it to launch the session (on RHEL, SUSE, Gentoo and alike).
       (Fixes: #1434).
 .
   [ Tom Ruzicka ]
   * debian/po: Add Czech debconf translation.
 .
   [ Ulrich Sibiller ]
   * New upstream version (4.1.0.4):
     - x2goserver-x2goagent/etc/keystrokes.cfg: sync with nx-libs 3.5.99.20.
       Previous version was broken and incomplete. Fixes: #1388.
     - x2goserver/bin/x2gostartagent: prevent logfile corruption. Both stderr
       redirection and errors= in the options file wrote to the same file which
       lead to corruption with lots of debug output. Fixes: #1537.
     - x2goserver-x2goagent/etc/keystrokes.cfg: sync with nx-libs 3.5.99.26.
       Previous version was incomplete. Note that this will only work correctly
       once we actually update to 3.5.99.26 within X2Go, but it doesn't hurt to
       have the new definitions until then. Fixes: #1538.
     - x2gostartsession: let x2godialog handle events via NX_CLIENT.
       Previously, any action that should have displayed a dialog did instead
       suspend x2goagent, since NX_CLIENT was set to x2gosuspend-session.
       Fixes: #1228. Fixes: #1540.
     - x2gostartsession: revert previous commit, this was not supposed to enter
       the master branch yet.
 .
   [ Hanno Foest ]
   * New upstream version (4.1.0.4):
     - x2goserver-xsession: Port OPTIONS variable and has_option() function
       from recent version of /etc/X11/Xsession to X2Go's Xsession file. (Fixes:
       #1583). More porting is actually needed.
 .
   [ Andrew J. Hesford ]
   * New upstream versio (4.1.0.4):
     - x2gocleansessions: Separate non-forking behavior from --debug into
       --nofork.
 .
   [ Camaleón ]
   * New upstream version (4.1.0.4):
     - debian/po: add new Spanish translation es.po.
 .
   [ Adriano Rafael Gomes ]
   * New upstream version (4.1.0.4):
     - debian/po: add new Brazilian Portuguese translation pt_BR.po.