[ 
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)

Reply via email to