[
https://issues.apache.org/jira/browse/GUACAMOLE-1295?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17290511#comment-17290511
]
Mike Jumper commented on GUACAMOLE-1295:
----------------------------------------
Even with the above environment variables set, things are still failing when
{{configure}} is actually run, again specific to Docker:
{code:none}
configure: error: cannot find sources () in . or ..
{code}
This is a simple readability test leveraging {{test -r}}. Manually running
{{test -r}} on a file that is known to be readable, it universally fails:
{code:none}
root@2c22272dbd89:/# touch foo
root@2c22272dbd89:/# test -r foo || echo nope
nope
root@2c22272dbd89:/#
{code}
But this is only occurs if each of the following is true:
* The container is unprivileged.
* {{apt upgrade}} has been run.
If {{apt upgrade}} has not been run, {{test -r}} works as expected regardless
of whether the container is privileged. Note that this also only affects the
bash built-in version of "test". If {{/usr/bin/test}} is used instead, that
works without privileges, too.
This appears to be due to usage of {{faccessat2()}} to determine access.
Running the bash version of test beneath strace:
{code:none}
faccessat2(AT_FDCWD, "foo", R_OK, AT_EACCESS) = -1 EPERM (Operation not
permitted)
{code}
There are various issues scattered about regarding Docker unintentionally
blocking {{faccessat2()}}:
* https://bugzilla.redhat.com/show_bug.cgi?id=1900021
* https://github.com/GoogleContainerTools/kaniko/issues/1573
That's likely what caused shell detection to fail, as well.
> Build fails against current Ubuntu "devel" (21.04)
> --------------------------------------------------
>
> Key: GUACAMOLE-1295
> URL: https://issues.apache.org/jira/browse/GUACAMOLE-1295
> Project: Guacamole
> Issue Type: Bug
> Components: guacamole-server
> Reporter: Mike Jumper
> Assignee: Mike Jumper
> Priority: Minor
>
> Our canary "ubuntu-devel" build is currently failing when {{autoreconf}} is
> run:
> {code:none}
> autoreconf: Entering directory `.'
> autoreconf: configure.ac: not using Gettext
> autoreconf: running: aclocal --force -I m4
> autoreconf: configure.ac: tracing
> autoreconf: configure.ac: not using Libtool
> autoreconf: running: /usr/bin/autoconf --force
> /usr/bin/autoconf: This script requires a shell more modern than all
> /usr/bin/autoconf: the shells that I found on your system.
> /usr/bin/autoconf: Please tell [email protected] about your system,
> /usr/bin/autoconf: including any error possibly output before this
> /usr/bin/autoconf: message. Then install a modern shell, or manually run
> /usr/bin/autoconf: the script under such a shell if you do have one.
> {code}
> See:
> https://ci-builds.apache.org/job/Guacamole/job/guacamole-server-master-ubuntu/JENKINS_LABEL_EXPRESSION=ubuntu,UBUNTU_RELEASE=devel/218/console
--
This message was sent by Atlassian Jira
(v8.3.4#803005)