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
See <https://jenkins.x2go.org:8443/job/x2goserver+release+main/55/display/redirect> Changes: ------------------------------------------ [...truncated 5.98 MB...] + rm -Rf -- /var/lib/jenkins/tmp/tmp.SUkJAv9Ky9xcyZD3JAT3EYKD/x2goserver + '[' opensuse = opensuse ']' + typeset -a arches_copy + arches_copy=("${arches[@]}") + typeset -i i=0 + (( i = 0 )) + (( i < 3 )) + [[ SRPM == \i\3\8\6 ]] + (( ++i )) + (( i < 3 )) + [[ x86_64 == \i\3\8\6 ]] + (( ++i )) + (( i < 3 )) + [[ i386 == \i\3\8\6 ]] + arches_copy[i]=i586 + (( ++i )) + (( i < 3 )) + typeset arch= + for arch in "${arches_copy[@]}" + mkdir -p -- /var/lib/jenkins/pkg-dist/main/x2goserver/opensuse/15.4/SRPM + for arch in "${arches_copy[@]}" + mkdir -p -- /var/lib/jenkins/pkg-dist/main/x2goserver/opensuse/15.4/x86_64 + for arch in "${arches_copy[@]}" + mkdir -p -- /var/lib/jenkins/pkg-dist/main/x2goserver/opensuse/15.4/i586 + BUILD_RESULT=/home/abuild/rpmbuild/ + typeset obs_config_dir=obs-config + download_urls=() + typeset -a download_urls + download_url=() + typeset -a download_url + extra_obs_build_args=() + typeset -a extra_obs_build_args + typeset obs_build_vendor_tag= ++ map_prefix_to_vendor x2go ++ typeset prefix=x2go ++ typeset out= ++ typeset ret=1 ++ case "${prefix}" in ++ out=X2Go ++ ret=0 ++ printf %s X2Go ++ return 0 + obs_build_vendor_tag=X2Go + '[' 0 -ne 0 ']' + extra_obs_build_args+=("--define" "%vendor ${obs_build_vendor_tag}") + typeset -i tmp_suse_major_version=0 + typeset -i tmp_suse_minor_version=0 + [[ 15.4 = \t\u\m\b\l\e\w\e\e\d ]] ++ get_generic_major_version 15.4 ++ typeset version=15.4 ++ typeset -i ret=0 ++ '[' -z 15.4 ']' ++ typeset -i tmp_major_version=0 +++ sed -e '/^\([0-9][0-9]*\)\.[0-9][0-9]*$/!d;s//\1/' ++ tmp_major_version=15 ++ '[' 15 -ne 0 ']' ++ echo 15 ++ return 0 + tmp_suse_major_version=15 + '[' 0 -ne 0 ']' ++ get_generic_minor_version 15.4 ++ typeset version=15.4 ++ typeset -i ret=0 ++ '[' -z 15.4 ']' ++ typeset -i tmp_minor_version=-1 +++ sed -e '/^[0-9][0-9]*\.\([0-9][0-9]*\)$/!d;s//\1/' ++ tmp_minor_version=4 ++ echo 4 ++ return 0 + tmp_suse_minor_version=4 + '[' 0 -ne 0 ']' + typeset dist_value= ++ generate_suse_dist_value opensuse 15 4 ++ typeset distname=opensuse ++ typeset major_version=15 ++ typeset minor_version=4 ++ '[' sle '!=' opensuse ']' ++ '[' opensuse '!=' opensuse ']' ++ typeset ret=sl ++ '[' sle = opensuse ']' ++ '[' 9999 = 15 ']' ++ '[' sle = opensuse ']' ++ ret=sl15.4 ++ printf '%s\n' sl15.4 ++ return 0 + dist_value=sl15.4 + '[' 0 -ne 0 ']' + extra_obs_build_args+=('--dist' "${dist_value}") + '[' opensuse = opensuse ']' + typeset -i legacy_release=0 ++ wrap_suse_major_version 15 ++ typeset major_version=15 ++ typeset -i tmp_major_version=15 ++ [[ 15 -lt 10 ]] ++ [[ 15 -eq 42 ]] ++ echo 15 ++ return 0 + tmp_suse_major_version=15 + '[' 0 -ne 0 ']' + opensuse_is_legacy 15 4 + typeset major_version=15 + typeset minor_version=4 + typeset -i ret=1 + [[ 15 != \9\9\9\9 ]] + '[' 15 -lt 15 ']' + '[' 15 -eq 15 ']' + '[' 4 -eq 0 ']' + return 1 + '[' 0 -eq 1 ']' + [[ 15 = \9\9\9\9 ]] + download_url=("${OPENSUSE_DOWNLOAD_URL[@]}") + (( i = 0 )) + (( i < 2 )) ++ sed -e s/#VERSION#/15.4/g + download_url[i]=https://download.opensuse.org/distribution/#LEAP#15.4/repo/oss/#SUSESUBDIR#/ + (( ++i )) + (( i < 2 )) ++ sed -e s/#VERSION#/15.4/g + download_url[i]=https://download.opensuse.org/update/#LEAP#15.4/oss/ + (( ++i )) + (( i < 2 )) + [[ 15 -lt 15 ]] + (( i = 0 )) + (( i < 2 )) ++ sed -e s_#SUSESUBDIR#__g + download_url[i]=https://download.opensuse.org/distribution/#LEAP#15.4/repo/oss// + (( ++i )) + (( i < 2 )) ++ sed -e s_#SUSESUBDIR#__g + download_url[i]=https://download.opensuse.org/update/#LEAP#15.4/oss/ + (( ++i )) + (( i < 2 )) + [[ 15 != \9\9\9\9 ]] + '[' 15 -gt 13 ']' + (( i = 0 )) + (( i < 2 )) ++ sed -e s_#LEAP#_leap/_g + download_url[i]=https://download.opensuse.org/distribution/leap/15.4/repo/oss// + (( ++i )) + (( i < 2 )) ++ sed -e s_#LEAP#_leap/_g + download_url[i]=https://download.opensuse.org/update/leap/15.4/oss/ + (( ++i )) + (( i < 2 )) + for url in "${download_url[@]}" + download_urls+=('--repo' "${url}") + for url in "${download_url[@]}" + download_urls+=('--repo' "${url}") + typeset -i noarch_built=0 + for l_ARCH in "${arches[@]}" + '[' SRPM = SRPM ']' + typeset base_arch=x86_64 + '[' -z x86_64 ']' + '[' fedora = opensuse ']' + '[' epel = opensuse ']' + ps ax + grep -E 'build.*/var/cache/obs-build/opensuse/15.4/x86_64/' + grep 'sudo obs' + typeset -a tmp_download_urls + tmp_download_urls=("${download_urls[@]}") + [[ 9999 == \1\5 ]] + get_extra_repository suse opensuse 15.4 main x2goserver x86_64 1 + typeset TYPE=suse + typeset DIST=opensuse + typeset CODENAME=15.4 + typeset COMPONENT=main + typeset PACKAGE=x2goserver + typeset ARCH=x86_64 ++ make_boolean 1 ++ typeset -l OPTION=1 ++ case "${OPTION}" in ++ OPTION=1 ++ printf 1 ++ return 0 + typeset WANT_EXTRA=1 + case "${TYPE}" in + OTHERMIRROR= + '[' 1 -eq 1 ']' + OTHERMIRROR='--repo suse@https://packages.x2go.org/opensuse/15.4/extras' + '[' -z x2go-keyring ']' + '[' x2go-keyring '!=' x2goserver ']' + OTHERMIRROR='--repo suse@https://packages.x2go.org/opensuse/15.4/extras --repo suse@https://packages.x2go.org/opensuse/15.4/main' + return 0 + sudo obs-build --nosignature --repo suse@https://packages.x2go.org/opensuse/15.4/extras --repo suse@https://packages.x2go.org/opensuse/15.4/main --repo https://download.opensuse.org/distribution/leap/15.4/repo/oss// --repo https://download.opensuse.org/update/leap/15.4/oss/ --root /var/cache/obs-build/opensuse/15.4/x86_64/ --clean --stage=-bs --define '%vendor X2Go' --dist sl15.4 /var/lib/jenkins/pkg-dist/main/x2goserver/opensuse/15.4/SRPM/rpmbuild/SOURCES/x2goserver.spec logging output to /var/cache/obs-build/opensuse/15.4/x86_64/.build.log... [ 0s] Memory limit set to 32746240KB [ 0s] Using BUILD_ROOT=/var/cache/obs-build/opensuse/15.4/x86_64 [ 0s] Using BUILD_ARCH=x86_64:i686:i586:i486:i386 [ 0s] [ 0s] [ 0s] japsand started "build x2goserver.spec" at Tue May 30 21:58:28 UTC 2023. [ 0s] build version: 20210120-4x2go4 [ 0s] [ 0s] [ 0s] processing recipe /var/lib/jenkins/pkg-dist/main/x2goserver/opensuse/15.4/SRPM/rpmbuild/SOURCES/x2goserver.spec ... [ 0s] init_buildsystem --configdir /usr/lib/obs-build/configs --cachedir /var/cache/obs-build --define %vendor X2Go --repository suse@https://packages.x2go.org/opensuse/15.4/extras --repository suse@https://packages.x2go.org/opensuse/15.4/main --repository https://download.opensuse.org/distribution/leap/15.4/repo/oss// --repository https://download.opensuse.org/update/leap/15.4/oss/ --clean --nosignature /var/lib/jenkins/pkg-dist/main/x2goserver/opensuse/15.4/SRPM/rpmbuild/SOURCES/x2goserver.spec ... [ 0s] init_buildsystem version: 20210120-4x2go4 [ 0s] initializing /var/cache/obs-build/opensuse/15.4/x86_64/.srcfiles.cache ... [ 0s] /usr/lib/obs-build/createyastdeps --cachedir=/var/cache/obs-build https://packages.x2go.org/opensuse/15.4/extras [ 1s] /usr/lib/obs-build/createyastdeps --cachedir=/var/cache/obs-build https://packages.x2go.org/opensuse/15.4/main [ 1s] /usr/lib/obs-build/createrepomddeps --cachedir=/var/cache/obs-build https://download.opensuse.org/distribution/leap/15.4/repo/oss// [ 26s] /usr/lib/obs-build/createrepomddeps --cachedir=/var/cache/obs-build https://download.opensuse.org/update/leap/15.4/oss/ [ 28s] expanding package dependencies... [ 32s] expansion error [ 32s] nothing provides nxagent [ 32s] [ 32s] japsand failed "build x2goserver.spec" at Tue May 30 21:59:00 UTC 2023. [ 32s] + exit 1 + cleanup + '[' -n /var/lib/jenkins/tmp/x2go-mock-I5JJikfNTyhsJJcWZ11mooh5 ']' + '[' -e /var/lib/jenkins/tmp/x2go-mock-I5JJikfNTyhsJJcWZ11mooh5 ']' + case "${TMP_MOCK_CFG_DIR}" in + typeset file= + for file in "${TMP_MOCK_CFG_DIR}/"* + '[' '!' -f /var/lib/jenkins/tmp/x2go-mock-I5JJikfNTyhsJJcWZ11mooh5/epel-7-x86_64-x2go-release-full.aEx6MnrSVs52eAGWdyKvuH5z.cfg ']' + rm -- /var/lib/jenkins/tmp/x2go-mock-I5JJikfNTyhsJJcWZ11mooh5/epel-7-x86_64-x2go-release-full.aEx6MnrSVs52eAGWdyKvuH5z.cfg + for file in "${TMP_MOCK_CFG_DIR}/"* + '[' '!' -f /var/lib/jenkins/tmp/x2go-mock-I5JJikfNTyhsJJcWZ11mooh5/epel-7-x86_64-x2go-release-full.TAZmYzkQBFg2roqehIgvHx5H.cfg ']' + rm -- /var/lib/jenkins/tmp/x2go-mock-I5JJikfNTyhsJJcWZ11mooh5/epel-7-x86_64-x2go-release-full.TAZmYzkQBFg2roqehIgvHx5H.cfg + '[' -e /var/lib/jenkins/tmp/x2go-mock-I5JJikfNTyhsJJcWZ11mooh5 ']' + '[' -d /var/lib/jenkins/tmp/x2go-mock-I5JJikfNTyhsJJcWZ11mooh5 ']' + rmdir -- /var/lib/jenkins/tmp/x2go-mock-I5JJikfNTyhsJJcWZ11mooh5 + typeset temp_dir= + for temp_dir in "${temp_cleanup[@]}" + '[' -n /var/lib/jenkins/tmp/tmp.7nAKwDyCBsxSH1gEtCaIhF7y ']' + '[' -d /var/lib/jenkins/tmp/tmp.7nAKwDyCBsxSH1gEtCaIhF7y ']' + rm -Rf -- /var/lib/jenkins/tmp/tmp.7nAKwDyCBsxSH1gEtCaIhF7y + for temp_dir in "${temp_cleanup[@]}" + '[' -n /var/lib/jenkins/tmp/tmp.hhLCGlNLNhf9TABvRsKtCp9V ']' + '[' -d /var/lib/jenkins/tmp/tmp.hhLCGlNLNhf9TABvRsKtCp9V ']' + rm -Rf -- /var/lib/jenkins/tmp/tmp.hhLCGlNLNhf9TABvRsKtCp9V + for temp_dir in "${temp_cleanup[@]}" + '[' -n /var/lib/jenkins/tmp/tmp.6xubzB0RoHO3WXyjSdSUJFjF ']' + '[' -d /var/lib/jenkins/tmp/tmp.6xubzB0RoHO3WXyjSdSUJFjF ']' + rm -Rf -- /var/lib/jenkins/tmp/tmp.6xubzB0RoHO3WXyjSdSUJFjF + for temp_dir in "${temp_cleanup[@]}" + '[' -n /var/lib/jenkins/tmp/tmp.aLBQTKvxZj4ES5r0d6GmX2p9 ']' + '[' -d /var/lib/jenkins/tmp/tmp.aLBQTKvxZj4ES5r0d6GmX2p9 ']' + rm -Rf -- /var/lib/jenkins/tmp/tmp.aLBQTKvxZj4ES5r0d6GmX2p9 + for temp_dir in "${temp_cleanup[@]}" + '[' -n /var/lib/jenkins/tmp/tmp.cHSgNvsVXMMwZhSqeQwQ66Lg ']' + '[' -d /var/lib/jenkins/tmp/tmp.cHSgNvsVXMMwZhSqeQwQ66Lg ']' + rm -Rf -- /var/lib/jenkins/tmp/tmp.cHSgNvsVXMMwZhSqeQwQ66Lg + for temp_dir in "${temp_cleanup[@]}" + '[' -n /var/lib/jenkins/tmp/tmp.SUkJAv9Ky9xcyZD3JAT3EYKD ']' + '[' -d /var/lib/jenkins/tmp/tmp.SUkJAv9Ky9xcyZD3JAT3EYKD ']' + rm -Rf -- /var/lib/jenkins/tmp/tmp.SUkJAv9Ky9xcyZD3JAT3EYKD Build step 'Execute shell' marked build as failure