See <https://jenkins.x2go.org:8443/job/x2goserver+release+main/54/display/redirect?page=changes> Changes: [git-admin] Continue development [mike.gabriel] debian/x2goserver.postinst: Drop duplicate sourcing of debconf includes. [mike.gabriel] Fix version number in VERSION.x2goserver-desktopsharing. [mike.gabriel] x2goserver-x2goagent: Drop x2goagent.keyboard file. [mike.gabriel] x2goversion: Fix situations where ${compfile} contains a non-absolute path (e.g. it contains '../'). [ionic] x2goserver/sbin/x2gocleansessions: add newline before POD block. [ionic] x2goserver-x2goagent/man/man1/x2goagent.1: add version and date. [ionic] x2goserver/Makefile: generate man pages from Perl POD. [ionic] debian/control: build-depend upon lsb-release for distro version detection. [ionic] debian/x2goserver.manpages: install x2gocleansessions man page. [ionic] X2Go/Utils.pm: fix missing semicolons. [ionic] X2Go/Utils.pm: add new is_int subroutine, checking if the provided value is an integer. [ionic] x2goserver/lib: new x2goisint wrapper. [ionic] x2goserver.spec: install new x2goisint wrapper. [ionic] x2goserver/lib/x2gois{int,true}: add newlines to (error) output. [ionic] x2goserver/lib/x2gois{int,true}: add optional warnings. [ionic] x2goserver/sbin/x2gocleansessions: rework manpage/POD. [ionic] x2goserver/lib: add new (stub) file x2goupdateoptionsstring to deal with options string manipulations. [ionic] x2goserver/lib/x2goupdateoptionsstring: add function to transform the intermediate options string representation back into a string and some code that uses this new function. [ionic] x2goserver/lib/x2go{is{int,true},updateoptionsstring}: use q{} instead of empty quotes as per some... coding standard. [ionic] x2goserver/lib/x2go{is{int,true},updateoptionsstring}: wrap print calls with filehandles in curly braces. [ionic] x2goserver/lib/x2goupdateoptionsstring: fix some "errors" reported by Perl::Critic in brutal mode. [ionic] x2goserver/lib/x2goupdateoptionsstring: add functionality for options removal. [ionic] 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. [ionic] x2goserver/lib/x2goupdateoptionsstring: refactor remove_option subprocedure into a more general transform_intermediate one and add code for the modification/addition case. [ionic] x2goserver/lib/x2goupdateoptionsstring: ignore some very noisy Perl::Critic warnings that we're going to ignore anyway. [ionic] x2goserver/lib/x2goupdateoptionsstring: fix interpolated string warning. [ionic] x2goserver/lib/x2goupdateoptionsstring: add helper function for transform string interpretation. [ionic] x2goserver/lib/x2goupdateoptionsstring: write wrapper that handles program options, creates intermediate, passes through transform chains, reconverts to a string and prints it. [ionic] x2goserver/lib/x2goupdateoptionsstring: add debug option and some debugging output. [ionic] x2goserver/lib/x2goupdateoptionsstring: remove dead code. [ionic] x2goserver/lib/x2goupdateoptionsstring: update documentation and clarify risks of option parsing. [ionic] x2goserver/lib/x2goupdateoptionsstring: don't debug-output the intermediate representation if we know that parsing failed. [ionic] x2goserver/lib/x2goupdateoptionsstring: fix debug string and add another one dumping the raw options string. [ionic] x2goserver/lib/x2goupdateoptionsstring: fix parsing of transformation strings by replacing the switch statement with if statements. [ionic] x2goserver/lib/x2goupdateoptionsstring: handle options in a more robust way. [ionic] x2goserver/lib/x2goupdateoptionsstring: fix another Perl::Critic nit. [ionic] x2goserver/lib/x2goupdateoptionsstring: move into x2goserver/bin, since it's really a standalone program and also useful for non-X2Go-internal usage. [ionic] x2goserver/Makefile: add x2goupdateoptionsstring POD-to-man-page handling. [ionic] debian/x2goserver.install: install bin/x2goupdateoptionsstring. [ionic] debian/x2goserver.manpages: install x2goupdateoptionsstring man page. [ionic] x2goserver/Makefile: don't quote POD_SCRIPTS, because of... make. [ionic] x2goserver/Makefile: install man1 files and dirs, too. [ionic] x2goserver.spec: install section 1 man pages. [ionic] x2goserver.spec: exclude x2goagent man page from x2goserver package. [mike.gabriel] debian/changelog: add bug closure for #1357 [mike.gabriel] Added Czech translation [mike.gabriel] debian/changelog: update [mike.gabriel] debian/po: Add Dutch, Portuguese and Russion debconf translation. [mike.gabriel] Update German translation. [ionic] x2goserver/bin/x2goruncommand: fix typo in IceWM branch. [mike.gabriel] Add support for X2Go KDrive. [ionic] X2Go_in_progress_do_not_use/Server/DB/MySQL.pm: backport kdrive change. [ionic] x2goserver/bin/x2gostartagent: fix quoting. [ionic] x2goserver/bin/x2gostartagent: adapt debug message to ${AGENTBIN} usage. [ionic] x2goserver/bin/x2gostartagent: also use ${AGENTBIN} in shadow session code. [ionic] x2goserver-x2goagent/etc/keystrokes.cfg: sync with nx-libs 3.5.99.20. [o.shneyder] x2goruncommand: start Xsession on X2Go KDrive desktops. [ionic] x2goserver/bin/x2goruncommand: fix syntax. [ionic] x2goserver/Makefile: allow auto-generation of files, including installation, uninstallation and cleanup. [ionic] x2goserver/bin: rename x2gopath to x2gopath.in. [ionic] x2goserver/bin/x2gopath.in: use ${BASH_SOURCE[0]} instead of ${0}... for reasons. [ionic] x2goserver/bin/x2gopath.in: rework quoting, variable usage, drop unnecessary semicolons etc. [ionic] x2goserver/bin/x2gopath.in: hardcode LIBDIR, PREFIX and SHAREDIR at build time, but also allow re-rooting afterwards - derived from the original values. [ionic] x2goserver.spec: pass down LIBDIR via make calls, not by modifying all source files with sed. [ionic] debian/rules: export and pass down LIBDIR. [ionic] debian/rules: fix standalone make call by specifying PREFIX, NXLIBDIR and LIBDIR explicitly. [ionic] Makefile: specify SHAREDIR as a default-if-not-specified variable. [ionic] Makefile: same change, but for ETCDIR. [ionic] {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. [ionic] x2goserver/Makefile: add support for $(NXLIBDIR). [ionic] x2goserver/bin/x2gopath.in: switch to bash. [ionic] x2goserver/bin/x2gopath.in: fix warning message to also include SHAREDIR. [ionic] x2goserver/bin/x2gopath.in: add and use support for NXLIBDIR; drop the lib-subdir detection. [ionic] x2goserver/bin/x2gopath.in: use [] instead of test, for consistency. [ionic] x2goserver/Makefile: remove indirections, not needed any longer and leading to build failures now. [ionic] x2goserver/Makefile: fix "inline" commenting syntax. [ionic] x2goserver/bin/x2gopath.in: fix syntax error due to non-duplicated dollar signs in comment lines. [ionic] debian/rules: fix quoting. [ionic] debian/changelog: fixup. [ionic] x2goserver/Makefile: export common variables for direct use in shell script sections. [ionic] x2goserver/Makefile: build up sed argument line as an array and use one substitution run. [ionic] x2goserver/Makefile: fix shell quoting issue with newly exported ${DESTDIR} variable. [ionic] x2goserver/bin/x2gopath.in: more test -> [] conversion. [ionic] x2goserver/bin/x2gopath.in: output warning messages if directories do not exist. [ionic] x2goserver-xsession/Makefile: correctly generate Xsession symlinks when building on Devuan. [ionic] x2goserver-xsession/Makefile: same for rt-os. [ionic] x2goserver-xsession/etc/Xsession: add support for Slackware in the RPM-based section. [ionic] x2goserver-xsession/Makefile: generate RPM-based symlinks for Slackware. [ionic] x2goserver/bin/x2gopath.in: more quoting. [ionic] x2goserver/bin/x2gopath.in: avoid spurious warning messages by canonicalizing installed path values. [ionic] x2goserver/bin/x2gopath.in: avoid double slashes since we now know that paths will be canonical. [ionic] 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. [mike.gabriel] Add X2Go KDrive support (wrapper package: x2goserver-x2gokdrive). [mike.gabriel] debian/control: Update (LONG_)DESCRIPTION of bin:pkg x2goserver-x2goagent. [mike.gabriel] x2goserver.spec: Update (LONG_)DESCRIPTION of bin:pkg x2goserver-x2goagent. [mike.gabriel] Add man page for x2gocleansessions. [mike.gabriel] Fix up files section for x2gokdrive (wrong pkg name). [mike.gabriel] x2goserver/man/man8/x2golistsessions_root.8: Mention --all-servers option. (Fixes: #1395). [mike.gabriel] x2golistsessions_root: Improve hypen-escaping in previous commit. [mike.gabriel] x2goruncommand: Support GNOME-based Ubuntu sessions (via X2Go Kdrive) as provided by Ubuntu 18.04 or later. [mike.gabriel] GNOME sessions: Avoid firing up of a polkit-1 authentication dialog requesting admin credentials to register a new color map device. [ionic] x2goserver.spec: X2Go KDrive package has been renamed to xorg-x11-server-x2gokdrive to be in line with general RPM package names. [ionic] 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. [ionic] x2goserver/sbin/x2gocleansessions: fetch and sanity-check x2gocleansessions.agent-startup-time from config file. [ionic] 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. [ionic] x2goserver/sbin/x2gocleansessions: replace time check with PID validity check in check_pid and calls. [ionic] x2goserver/lib/x2goupdateoptionsstring: simplify a for loop a bit. [ionic] x2goserver/lib/x2goupdateoptionsstring: fix typo in comment. [ionic] x2goserver/lib/x2goupdateoptionsstring: fix typo in print statement syntax. [ionic] debian/libx2go-server-perl.install: remove duplicated entry for X2Go/Utils.pm. [ionic] x2goserver/lib/x2goupdateoptionsstring: update copyright notice. [ionic] X2Go/Server/Agentt/: add new (stub) file NX/Options.pm as a library version of the options string manipulation code. [ionic] x2goserver/lib/x2goupdateoptionsstring: fix man page specification, options string was missing. [ionic] x2goserver/lib/x2goupdateoptionsstring: move most code to X2Go/Server/Agent/NX/Options.pm. [ionic] x2goserver/lib/x2goupdateoptionsstring: revert for loop simplification. [ionic] X2Go/Server/Agent/NX/Options.pm: add a lot of documentation. [ionic] x2goserver/lib/x2goupdateoptionsstring: update synopsis to include the optional character of a plus sign, but a non-optional character for a minus sign. [ionic] x2goserver/lib/x2goupdateoptionsstring: make clear that "additional parameters" are transformations. [ionic] x2goserver/lib/x2goupdateoptionsstring: replace occurrences of "option string" with "options string". [ionic] X2Go/Server/Agent/NX/Options.pm: replace occurrences of "option string" with "options string". [ionic] 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. [ionic] X2Go/Server/Agent/NX/Options.pm: whitespace-only in comment. [ionic] X2Go/Server/Agent/NX/Options.pm: add and use an enum-like construct as the internal mode selector for transforms. [ionic] X2Go/Server/Agent/NX/Options.pm: rename options parameter in transform_intermediate to intermediate. [ionic] X2Go/Server/Agent/NX/Options.pm: document key-value pairs with either empty keys or empty (!= non-existent) values. [ionic] X2Go/Server/Agent/NX/Options.pm: make sure that intermediates never include undef entries. [ionic] x2goserver/lib/x2goupdateoptionsstring: switch to "X2Go/NX Agent" term and make it bold to denote something special. [ionic] X2Go/Server/Agent/NX/Options.pm: add new function compact_intermediate, used to remove duplicated and empty elements. [ionic] x2goserver/lib/x2goupdateoptionsstring: add new --compact/-c switch to enable the use of compactation. [ionic] x2goserver/lib/x2goupdateoptionsstring: document new --compact/-c switch. [ionic] x2goserver/lib/x2goupdateoptionsstring: split up GetOptionsFromArray () line. [ionic] X2Go/Server/Agent/NX/Options.pm: document the new compact_intermediate () function and its implications. [ionic] X2Go/Server/Agent/NX/Options.pm: fix some Perl Critic warnings and silence others. [ionic] x2goserver/lib/x2goupdateoptionsstring: fix some Perl Critic warnings and silence others. [ionic] X2Go/Server/Agent/NX/Options.pm: grammar/typo fix in comment and improve a different comment. [ionic] X2Go/Server/Agent/NX/Options.pm: avoid copying arrays if not necessary when passing to grep and map operations. [ionic] X2Go/Server/Agent/NX/Options.pm: rework the lastly modified comment again, the changed explanation didn't match the reality. [ionic] X2Go/Server/Agent/NX/Options.pm: fix typos in internal section links. [ionic] X2Go/Server/Agent/NX/Options.pm: add newline before __END__, non-functional. [ionic] {X2Go/Server/Agent/NX/Options.pm,x2goserver/lib/x2goupdateoptionsstring}: add =pod markers. [ionic] {X2Go/Server/Agent/NX/Options.pm,x2goserver/lib/x2goupdateoptionsstring}: update AUTHOR sections with proper links. [ionic] X2Go/Server/Agent/NX/Options.pm: fix nxagent man page link. [ionic] x2goserver/lib/x2goupdateoptionsstring: considerably simplify while loop logic that iterates over transformations. [ionic] {X2Go/Server/Agent/NX/Options.pm,x2goserver/lib/x2goupdateoptionsstring}: reformat/reflow so that each sentence starts on a proper line. [ionic] X2Go/Server/Agent/NX/Options.pm: replace "treat as" with "treat like". [ionic] X2Go/Server/Agent/NX/Options.pm: clear up "logically equivalent but logically very different" situation. [ionic] x2goserver/lib/x2goupdateoptionsstring: rename EXAMPLE section to EXAMPLES. [ionic] x2goserver/lib/x2goupdateoptionsstring: add links to X2Go::Server::Agent::NX::Options documentation on option strings and transformations. [ionic] x2goserver/lib/x2goupdateoptionsstring: document how to cheat and just compact options strings. [ionic] x2goserver/lib/x2goupdateoptionsstring: add options terminators to example calls. [ionic] X2Go/Server/Agent/NX/Options.pm: document that NUL bytes can only be URL-encoded, but that this not recommended. [ionic] X2Go/Server/Agent/NX/Options.pm: typo compactation => compaction. [ionic] X2Go/Server/Agent/NX/Options.pm: whitespace-only on fake enum-subs. [ionic] 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). [ionic] x2goserver/lib/x2goupdateoptionsstring: add space between link and punctuation character for easier copying. [ionic] x2goserver/lib/x2goupdateoptionsstring: better document end-of-options terminator and highlight its importance. [ionic] X2Go/Server/Agent/NX/Options.pm: reflow some text. [ionic] X2Go/Server/Agent/NX/Options.pm: document other non-printable characters. [ionic] x2goserver/lib/x2goupdateoptionsstring: add comment regarding the shift () operations after sanitizing program options. [ionic] 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. [ionic] 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. [ionic] x2goserver/lib/x2goupdateoptionsstring: fix parsing of multiple subsequent separating "--" pseudo-options. [ionic] x2goserver/lib/x2goupdateoptionsstring: add debug print statements for in-depth examination of program options parsing. [ionic] x2goserver/lib/x2goupdateoptionsstring: add mode selection functionality. [ionic] X2Go/Server/Agent/NX/Options.pm: port modes "enum" subs to the constant pragma to make the code more consistent with the program wrapper. [ionic] {X2Go/Server/Agent/NX/Options.pm,x2goserver/lib/x2goupdateoptionsstring}: update Perl critic overrides to allow the constant pragma and document it and other overrides (unless they are self-explanatory). [ionic] x2goserver/lib/x2goupdateoptionsstring: rework mode selection, split out abbreviation parsing into a separate function to take out nesting complexity. [ionic] debian/changelog: typo and whitespace fixes. [ionic] debian/changelog: fixup x2goserver/{lib,bin}/x2goupdateoptionsstring. [ionic] {X2Go/Server/Agent/NX/Options.pm,x2goserver/bin/x2goupdateoptionsstring}: fix/silence a few Perl::Critic warnings. [ionic] x2goserver/bin/x2goupdateoptionsstring: typo fix in output message only. [ionic] x2goserver/bin/x2goupdateoptionsstring: remove obsolete comment, we're not using a do block/do-while loop any longer. [ionic] X2Go/Server/Agent/NX/Options.pm: undef can't be referenced, so adjust/fix the comments. [ionic] x2goserver/bin/x2goupdateoptionsstring: more typo fixes in output messages only. [ionic] x2goserver/bin/x2goupdateoptionsstring: generalize code looping through program arguments and split out transformation operation into own subroutine. [ionic] {X2Go/Server/Agent/NX/Options.pm,x2goserver/bin/x2goupdateoptionsstring}: enable Unicode handling, as far as possible. [ionic] {X2Go/Server/Agent/NX/Options.pm,x2goserver/bin/x2goupdateoptionsstring}: fatalize text coding errors. [ionic] x2goserver/bin/x2goupdateoptionsstring: sanitize/convert data in @ARGV. [ionic] x2goserver/bin/x2goupdateoptionsstring: add non-functional extraction mode. [ionic] x2goserver/bin/x2goupdateoptionsstring: fix syntax and strict mode errors. [ionic] X2Go/Server/Agent/NX/Options.pm: simplify error handling by splitting intermediate checking out into a separate subroutine. [ionic] X2Go/Server/Agent/NX/Options.pm: rename $options variable to $intermediate in intermediate_to_string () for internal consistency. [ionic] X2Go/Server/Agent/NX/Options.pm: document that subroutines and constants that are not marked for export are internal and should not be used. [ionic] X2Go/Server/Agent/NX/Options.pm: add extract_element subroutine, used to extract key-value pairs. [ionic] x2goserver/bin/x2goupdateoptionsstring: correctly use MIME::Base64. [ionic] x2goserver/bin/x2goupdateoptionsstring: actually implement extraction mode. [ionic] x2goserver/bin/x2goupdateoptionsstring: don't encode/decode in-place. [ionic] {X2Go/Server/Agent/NX/Options.pm,x2goserver/bin/x2goupdateoptionsstring}: explicitly use package foreign package names all across the code for consistency. [ionic] x2goserver/bin/x2goupdateoptionsstring: fix typos in documentation and reword misinterpreted-as-options section. [ionic] x2goserver/bin/x2goupdateoptionsstring: document mode selection and extraction mode. [ionic] x2goserver/bin/x2goupdateoptionsstring: fix error handling for kv-pair extraction. [ionic] x2goserver/bin/x2goupdateoptionsstring: add base64 encode and decode helpers, add new --base64 parameter that enabled global use of base64. [ionic] X2Go/Server/Agent/NX/Options.pm: actually check for a specific value in the kv-pair filter function if so specified. [ionic] x2goserver/bin/x2goupdateoptionsstring: extend extraction example for how to check for full key-value pair combinations. [ionic] x2goserver/bin/x2goupdateoptionsstring: document the new base6 pseudo-mode. [ionic] x2goserver/bin/x2goupdateoptionsstring: an equal sign or space character is mandatory after the -m or --mode switch. [ionic] X2Go/Server/Agent/NX/Options.pm: document key-value pair extraction. [ionic] x2goserver/bin/x2goupdateoptionsstring: fix some Perl::Critic warnings. [ionic] x2goserver/bin/x2goupdateoptionsstring: encode/decode to/from shell locale. [ionic] x2goserver.spec: add dependency upon perl(Encode::Locale) for older distros. [ionic] x2goserver/bin: rename x2goupdateoptionsstring to x2gooptionsstring. [ionic] x2goserver/Makefile: rename x2goupdateoptionsstring to x2gooptionsstring. [ionic] debian/x2goserver.manpages: rename x2goupdateoptionsstring to x2gooptionsstring. [ionic] debian/x2goserver.install: rename x2goupdateoptionsstring to x2gooptionsstring. [ionic] x2goserver/bin/x2gooptionsstring: rename x2goupdateoptionsstring to x2gooptionsstring. [ionic] x2goserver/bin/x2gostartagent: fetch the agent PID as early as possible. [ionic] x2goserver/bin/x2gooptionsstring: actually default to transformation mode if none was explicitly selected. [ionic] 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. [ionic] x2goserver/bin/x2goresume-session: use global-scope msg variable. [ionic] x2goserver/bin/x2goresume-session: update copyright notice. [ionic] x2goserver/bin/x2goresume-session: use printf more often instead of the not-so-portable echo builtin. [ionic] x2goserver/bin/x2goresume-session: fix err_msg => msg usage. [ionic] debian/x2goserver.init: rewrite init script to make it idempotent and actually check if the cleanup service was started correctly. [ionic] 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. [ionic] X2Go/Server/Agent/NX/Options.pm: same C<>-to-B<> conversion as in the previous commit. [ionic] debian/control: pull in base64 as a run-time dependency. [ionic] x2goserver.spec: add run-time base64 dependency. [ionic] x2goserver/bin/x2goresume-session: simplify where possible, use x2gooptionsstring instead of awk field splitting hackery. [ionic] x2goserver/bin/x2gostartagent: prevent logfile corruption. [ionic] x2goserver-x2goagent/etc/keystrokes.cfg: sync with nx-libs 3.5.99.26. [mike.gabriel] debian/control: 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). [ionic] x2gostartsession: let x2godialog handle events via NX_CLIENT. [ionic] add new subpackage x2godialog [ionic] x2goserver.spec: remove run-time base64 dependency - part of coreutils. [ionic] Revert "add new subpackage x2godialog" [ionic] x2gostartsession: revert previous commit, this was not supposed to enter the master branch yet. [mike.gabriel] x2gocleansessions: Separate non-forking behavior from --debug into --nofork. [ionic] x2goserver/bin/x2goresume-session: fix redirections and make script workable again. [ionic] x2goserver/bin/x2goresume-session: fix clipboard handling. [o.shneyder] x2goterminate-session: terminate x2goruncommand and all processes from the group. [o.shneyder] Support for rootless X2GoKdrive sessions. [o.shneyder] Setting keyboard layout in rootless X2GoKdrive sessions. [mike.gabriel] 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. [mike.gabriel] debian/x2goserver.manpages: Install x2goupdateoptionsstring.1* man pages into bin:pkg x2goserver. [mike.gabriel] Makefile: Create symlink from /etc/x2go/Xsession.options.d/ to /etc/X11/Xsession.options.d on Debian-like systems. [mike.gabriel] x2goserver/man/man8/x2gocleansessions.8: Update man page. [mike.gabriel] x2goserver-xsession/etc/Xsession: Detect $SHELL from getent passwd and use it to launch the session (on RHEL, SUSE, Gentoo and alike). (Fixes: #1434). [o.shneyder] - x2gostartagent: save the XDMCP server in the session id. - x2gotermin atesession: don't terminate x2goruncommand on XDMCP sessions. [o.shneyder] setting keyboard layout by agent start and resuming for kdrive sessions. [o.shneyder] remove layout debug output from x2go-resumesession. [ionic] debian/po: add new Spanish translation es.po. [ionic] debian/po: add new Brazilian Portuguese translation pt_BR.po. [ionic] debian/changelog: fixup and sort chronologically. [ionic] x2goserver.spec: escape percent signs in comments, getting rid of warnings in obs-build's spec file parser. [ionic] x2goserver-xsession/Makefile: drop useless use of cat, add debugging to see whether symlinks or a directory has been added. [ionic] x2goserver-xsession/Makefile: support Tumbleweed with Xresources in /usr/etc. [ionic] x2goserver.spec: support UsrEtc(Move) for OpenSuSE Tumbleweed for Xresources symlink. [ionic] x2goserver-xsession/etc/Xsession: check for *SuSE via /usr/lib/os-release and /etc/os-release and generally refine checking layout a bit. [ionic] x2goserver-xsession/Makefile: Xresources is a file, not a directory. [ionic] x2goserver.spec: Xresources symlink stays in /etc/x2go for now, no need to use %{_distconfdir} or the like. [ionic] x2goserver-xsession/Makefile: on systems that do not provide a global /etc/X11/Xresources file, create a dangling symlink instead. [ionic] x2goserver.spec: add BR: and R: on distribution-release (pseudo-package/provides) for /usr/lib/os-release and /etc/os-release. [ionic] X2Go/Server/Agent/NX/Options.pm: fix typo in test comment. [ionic] x2goserver/bin/x2goruncommand: add support for KDE Plasma 5 (startplasma-x11). [ionic] misc: copyright updates, but for contributors who haven't been active. [ionic] misc manpages: pre-release date update. [ionic] debian/changelog: fix version number (oops). [ionic] debian/changelog: revert version number, we're stuck with it until a proper version bump. [ionic] debian/rules: remove unintentional addition of USE_GTK variable. [ionic] debian/rules: port new OS version detection code from X2Go Client, which also fixes detecting testing and unstable. [ionic] x2goserver.spec: fix description for x2goserver-x2gokdrive. [ionic] x2goserver.spec: add R: x2goserver-x2gokdrive to x2goserver package, to always pull it in as a dependency. [ionic] x2goserver.spec: exclude KDrive support for old Fedora, RHEL/CentOS/... and *SuSE distribution versions. [ionic] debian/control: fix description for x2goserver-x2gokdrive. [ionic] x2goserver.spec: if we don't support KDrive for a platform, remove the associated files. [git-admin] release 4.1.0.4 ------------------------------------------ [...truncated 2.33 MB...] qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 qemu: Unsupported syscall: 412 Check disk space ---------------- Sufficient free space for build qemu: Unsupported syscall: 403 User Environment ---------------- APT_CONFIG=/var/lib/sbuild/apt.conf HOME=/sbuild-nonexistent LANG=en_US.UTF-8 LC_ALL=POSIX LD_LIBRARY_PATH=/usr/lib/libeatmydata LD_PRELOAD=libeatmydata.so LOGNAME=jenkins PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games PWD=/<<PKGBUILDDIR>> SCHROOT_ALIAS_NAME=bullseye-armhf-raspbian-sbuild SCHROOT_CHROOT_NAME=bullseye-armhf-raspbian-sbuild SCHROOT_COMMAND=env SCHROOT_GID=110 SCHROOT_GROUP=jenkins SCHROOT_SESSION_ID=bullseye-armhf-raspbian-sbuild-ddd9f231-3725-41ed-8ba6-d4487c109f52 SCHROOT_UID=106 SCHROOT_USER=jenkins SHELL=/bin/sh USER=jenkins dpkg-buildpackage ----------------- qemu: Unsupported syscall: 403 dpkg-buildpackage: info: source package x2goserver dpkg-buildpackage: info: source version 4.1.0.4-0x2go1.2+git20230530.1975+11.main.1 dpkg-buildpackage: info: source distribution bullseye dpkg-buildpackage: info: source changed by Jenkins <jenkins@japsand.x2go.org> qemu: Unsupported syscall: 403 dpkg-source --before-build . dpkg-buildpackage: info: host architecture armhf qemu: Unsupported syscall: 403 qemu: Unsupported syscall: 403 fakeroot debian/rules clean qemu: Unsupported syscall: 403 qemu: Unsupported syscall: 312 semop(1): encountered an error: Function not implemented dpkg-buildpackage: error: fakeroot debian/rules clean subprocess returned exit status 1 -------------------------------------------------------------------------------- Build finished at 2023-05-30T20:34:02Z Finished -------- +------------------------------------------------------------------------------+ | Cleanup | +------------------------------------------------------------------------------+ Purging /<<BUILDDIR>> Not cleaning session: cloned chroot in use qemu: Unsupported syscall: 403 E: Build failure (dpkg-buildpackage died) +------------------------------------------------------------------------------+ | Summary | +------------------------------------------------------------------------------+ Build Architecture: armhf Build Type: full Build-Space: 5112 Build-Time: 3 Distribution: bullseye Fail-Stage: build Host Architecture: armhf Install-Time: 64 Job: /home/_jenkins_/tmp/tmp.sRPj5zRct7tBlDGMruLPvhZc/x2goserver_4.1.0.4-0x2go1.2+git20230530.1975+11.main.1.dsc Machine Architecture: amd64 Package: x2goserver Package-Time: 231 Source-Version: 4.1.0.4-0x2go1.2+git20230530.1975+11.main.1 Space: 5112 Status: attempted Version: 4.1.0.4-0x2go1.2+git20230530.1975+11.main.1 -------------------------------------------------------------------------------- Finished at 2023-05-30T20:34:02Z Build needed 00:03:51, 5112k disk space E: Build failure (dpkg-buildpackage died) + cleanup + typeset temp_dir= + for temp_dir in "${temp_cleanup[@]}" + '[' -n '' ']' + for temp_dir in "${temp_cleanup[@]}" + '[' -n /var/lib/jenkins/tmp/tmp.EpxsMrfTD3qSni2xKkhGqGo5 ']' + '[' -d /var/lib/jenkins/tmp/tmp.EpxsMrfTD3qSni2xKkhGqGo5 ']' + rm -Rf -- /var/lib/jenkins/tmp/tmp.EpxsMrfTD3qSni2xKkhGqGo5 + for temp_dir in "${temp_cleanup[@]}" + '[' -n /var/lib/jenkins/tmp/tmp.jntn6Ts4HwbLGtMSRE4w4BbC ']' + '[' -d /var/lib/jenkins/tmp/tmp.jntn6Ts4HwbLGtMSRE4w4BbC ']' + rm -Rf -- /var/lib/jenkins/tmp/tmp.jntn6Ts4HwbLGtMSRE4w4BbC + for temp_dir in "${temp_cleanup[@]}" + '[' -n /var/lib/jenkins/tmp/tmp.0OgQvJ4koxUKZZ0zy5Pm6kLw ']' + '[' -d /var/lib/jenkins/tmp/tmp.0OgQvJ4koxUKZZ0zy5Pm6kLw ']' + rm -Rf -- /var/lib/jenkins/tmp/tmp.0OgQvJ4koxUKZZ0zy5Pm6kLw + for temp_dir in "${temp_cleanup[@]}" + '[' -n /var/lib/jenkins/tmp/tmp.bhUnrTu7J5TXPEte6xKCs0CH ']' + '[' -d /var/lib/jenkins/tmp/tmp.bhUnrTu7J5TXPEte6xKCs0CH ']' + rm -Rf -- /var/lib/jenkins/tmp/tmp.bhUnrTu7J5TXPEte6xKCs0CH + for temp_dir in "${temp_cleanup[@]}" + '[' -n /var/lib/jenkins/tmp/tmp.lSJFhLXs7gsliRLKeUCpBLBF ']' + '[' -d /var/lib/jenkins/tmp/tmp.lSJFhLXs7gsliRLKeUCpBLBF ']' + rm -Rf -- /var/lib/jenkins/tmp/tmp.lSJFhLXs7gsliRLKeUCpBLBF + for temp_dir in "${temp_cleanup[@]}" + '[' -n /var/lib/jenkins/tmp/tmp.aCe4AHJBUaVb8xY0QIkXI62H ']' + '[' -d /var/lib/jenkins/tmp/tmp.aCe4AHJBUaVb8xY0QIkXI62H ']' + rm -Rf -- /var/lib/jenkins/tmp/tmp.aCe4AHJBUaVb8xY0QIkXI62H + for temp_dir in "${temp_cleanup[@]}" + '[' -n /var/lib/jenkins/tmp/tmp.1H8HNphtFoaM3bSIhFp0wp4J ']' + '[' -d /var/lib/jenkins/tmp/tmp.1H8HNphtFoaM3bSIhFp0wp4J ']' + rm -Rf -- /var/lib/jenkins/tmp/tmp.1H8HNphtFoaM3bSIhFp0wp4J + for temp_dir in "${temp_cleanup[@]}" + '[' -n /var/lib/jenkins/tmp/tmp.5POiwW6ntJmfUxt1OeZeFrNW ']' + '[' -d /var/lib/jenkins/tmp/tmp.5POiwW6ntJmfUxt1OeZeFrNW ']' + rm -Rf -- /var/lib/jenkins/tmp/tmp.5POiwW6ntJmfUxt1OeZeFrNW + for temp_dir in "${temp_cleanup[@]}" + '[' -n /var/lib/jenkins/tmp/tmp.WwfrB3sIhnaQPB1XOII9mbcg ']' + '[' -d /var/lib/jenkins/tmp/tmp.WwfrB3sIhnaQPB1XOII9mbcg ']' + rm -Rf -- /var/lib/jenkins/tmp/tmp.WwfrB3sIhnaQPB1XOII9mbcg + for temp_dir in "${temp_cleanup[@]}" + '[' -n /var/lib/jenkins/tmp/tmp.sRPj5zRct7tBlDGMruLPvhZc ']' + '[' -d /var/lib/jenkins/tmp/tmp.sRPj5zRct7tBlDGMruLPvhZc ']' + rm -Rf -- /var/lib/jenkins/tmp/tmp.sRPj5zRct7tBlDGMruLPvhZc Build step 'Execute shell' marked build as failure