1.2 server build fail on el7 and el8

classic Classic list List threaded Threaded
9 messages Options
Reply | Threaded
Open this post in threaded view
|

1.2 server build fail on el7 and el8

TDi-jones
long time Guacamole integrator (since 0.9.4) and haven't had trouble with the
server build before

extract the tar
run configure
make
....
user.c: In function ‘guac_rdp_user_file_handler’:
user.c:144:44: error: ‘settings’ undeclared (first use in this function);
did you mean ‘setgid’?
     if (rdp_client->filesystem != NULL && !settings->disable_upload)


end of the configure:
------------------------------------------------
guacamole-server version 1.2.0
------------------------------------------------

   Library status:

     freerdp2 ............ yes
     pango ............... yes
     libavcodec .......... no
     libavformat.......... no
     libavutil ........... no
     libssh2 ............. no
     libssl .............. yes
     libswscale .......... no
     libtelnet ........... no
     libVNCServer ........ yes
     libvorbis ........... yes
     libpulse ............ yes
     libwebsockets ....... no
     libwebp ............. yes
     wsock32 ............. no

   Protocol support:

      Kubernetes .... no
      RDP ........... yes
      SSH ........... no
      Telnet ........ no
      VNC ........... yes

   Services / tools:

      guacd ...... yes
      guacenc .... no
      guaclog .... yes

   FreeRDP plugins: /usr/lib64/freerdp2
   Init scripts: no
   Systemd units: no




--
Sent from: http://apache-guacamole-general-user-mailing-list.2363388.n4.nabble.com/

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: 1.2 server build fail on el7 and el8

vnick
On Thu, Jul 2, 2020 at 11:59 AM TDi-jones <[hidden email]> wrote:
long time Guacamole integrator (since 0.9.4) and haven't had trouble with the
server build before

extract the tar
run configure
make
....
user.c: In function ‘guac_rdp_user_file_handler’:
user.c:144:44: error: ‘settings’ undeclared (first use in this function);
did you mean ‘setgid’?
     if (rdp_client->filesystem != NULL && !settings->disable_upload)



Are you building from source tarballs or git repo?  Is this a clean tree - no modifications to it?  If you're using the git repo, can you do "git status" and make sure nothing is out-of-date?  If source tarballs, can you download a clean version and try from scratch?

We've verified the builds quite extensively on multiple platforms - at least EL7 (I use CentOS7 routinely and build on that on a daily basis).

-Nick
Reply | Threaded
Open this post in threaded view
|

Re: 1.2 server build fail on el7 and el8

Zer0Cool
In reply to this post by TDi-jones
In your output it says "no" for init and systemd, pretty sure it has to be
one or the other. That is done via the configure command using a switch as
explained in https://guacamole.apache.org/doc/gug/installing-guacamole.html.

For what its worth, my script for rhel/centos 7 seems to build and work with
guac 1.2.0 just fine, which can be found at:
https://github.com/Zer0CoolX/guacamole-install-rhel-7. I am still working on
a rhel/centos 8 version of the script (privately until its ready) but have
gotten beyond building guac server and client in it, so i know its possible
as well.

Also is this a clean/fresh build of rhel/centos? Is this bare metal, a vm,
container, AWS instance, etc?



--
Sent from: http://apache-guacamole-general-user-mailing-list.2363388.n4.nabble.com/

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: 1.2 server build fail on el7 and el8

TDi-jones
This is on 2 VM's that I normally build on (currently 1.1) RHEL7.8 and
RHEL8.2
It's the source tarball from the download page
The configure output I posted was from the el8 box, here is the el7 output
of
./configure --with-init-dir=/etc/init.d (has the same build issue)
------------------------------------------------
guacamole-server version 1.2.0
------------------------------------------------

   Library status:

     freerdp2 ............ yes
     pango ............... yes
     libavcodec .......... yes
     libavformat.......... yes
     libavutil ........... yes
     libssh2 ............. no
     libssl .............. yes
     libswscale .......... yes
     libtelnet ........... no
     libVNCServer ........ yes
     libvorbis ........... yes
     libpulse ............ yes
     libwebsockets ....... no
     libwebp ............. yes
     wsock32 ............. no

   Protocol support:

      Kubernetes .... no
      RDP ........... yes
      SSH ........... no
      Telnet ........ no
      VNC ........... yes

   Services / tools:

      guacd ...... yes
      guacenc .... yes
      guaclog .... yes

   FreeRDP plugins: /usr/lib64/freerdp2
   Init scripts: /etc/init.d
   Systemd units: no





--
Sent from: http://apache-guacamole-general-user-mailing-list.2363388.n4.nabble.com/

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: 1.2 server build fail on el7 and el8

Zer0Cool
So the error seems to indicate an issue with RDP and/or filesystem. Are you
using a standard file system on the virtual disk used by the VM (ext4 or
xfs)? It may be worth taking a look at /var/log/messages too to see if you
can find additional errors/info.

If you feel so inclined, you could try to install via my script and see if
that works (on a fresh rhel/centos 7.8 install). The link I provided gives
details for how to use the script, what it does, etc.



--
Sent from: http://apache-guacamole-general-user-mailing-list.2363388.n4.nabble.com/

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: 1.2 server build fail on el7 and el8

mjumper
Administrator
In reply to this post by vnick
I think I've found the cause:


The relevant code looks like this:

#ifdef ENABLE_COMMON_SSH
    guac_rdp_settings* settings = rdp_client->settings;
    ...
#endif

    /* Default to using RDPDR uploads (if enabled) */
    if (rdp_client->filesystem != NULL && !settings->disable_upload)
        return guac_rdp_upload_file_handler(user, stream, mimetype, filename);

The definition of that variable is within a block that's conditionally compiled based on whether SSH is available (for the SFTP filesystem). Lacking SSH support at build time, the variable containing the settings is not defined within that function. It doesn't have to be that way, but was probably only referenced within that conditional section prior to introducing support for disabling upload/download.

- Mike


On Thu, Jul 2, 2020 at 9:04 AM Nick Couchman <[hidden email]> wrote:
On Thu, Jul 2, 2020 at 11:59 AM TDi-jones <[hidden email]> wrote:
long time Guacamole integrator (since 0.9.4) and haven't had trouble with the
server build before

extract the tar
run configure
make
....
user.c: In function ‘guac_rdp_user_file_handler’:
user.c:144:44: error: ‘settings’ undeclared (first use in this function);
did you mean ‘setgid’?
     if (rdp_client->filesystem != NULL && !settings->disable_upload)



Are you building from source tarballs or git repo?  Is this a clean tree - no modifications to it?  If you're using the git repo, can you do "git status" and make sure nothing is out-of-date?  If source tarballs, can you download a clean version and try from scratch?

We've verified the builds quite extensively on multiple platforms - at least EL7 (I use CentOS7 routinely and build on that on a daily basis).

-Nick
Reply | Threaded
Open this post in threaded view
|

Re: 1.2 server build fail on el7 and el8

vnick
On Thu, Jul 2, 2020 at 3:01 PM Mike Jumper <[hidden email]> wrote:
I think I've found the cause:


The relevant code looks like this:

#ifdef ENABLE_COMMON_SSH
    guac_rdp_settings* settings = rdp_client->settings;
    ...
#endif

    /* Default to using RDPDR uploads (if enabled) */
    if (rdp_client->filesystem != NULL && !settings->disable_upload)
        return guac_rdp_upload_file_handler(user, stream, mimetype, filename);

The definition of that variable is within a block that's conditionally compiled based on whether SSH is available (for the SFTP filesystem). Lacking SSH support at build time, the variable containing the settings is not defined within that function. It doesn't have to be that way, but was probably only referenced within that conditional section prior to introducing support for disabling upload/download.


Doh!  Thanks, Mike.  I've entered GUACAMOLE-1122 against this and a pull request for the fix.

-Nick
Reply | Threaded
Open this post in threaded view
|

Re: 1.2 server build fail on el7 and el8

TDi-jones
In reply to this post by mjumper
my source doesn't quite look like that.... but I moved the #ifdef down a line
and it builds fine

THANKS GUYS, KEEP UP THE GREAT WORK!

#ifdef ENABLE_COMMON_SSH <-- from here
    guac_rdp_settings* settings = rdp_client->settings;
                                        <-- to here
    /* If SFTP is enabled and SFTP uploads have not been disabled, it should
be
     * used for default uploads only if RDPDR is not enabled or its upload
     * directory has been set */
    if (rdp_client->sftp_filesystem != NULL &&
!settings->sftp_disable_upload) {
        if (!settings->drive_enabled || settings->sftp_directory != NULL)
            return guac_rdp_sftp_file_handler(user, stream, mimetype,
filename);
    }
#endif




--
Sent from: http://apache-guacamole-general-user-mailing-list.2363388.n4.nabble.com/

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: 1.2 server build fail on el7 and el8

vnick
This issue has been fixed in the git master repo.

-Nick

On Thu, Jul 2, 2020 at 7:02 PM TDi-jones <[hidden email]> wrote:
my source doesn't quite look like that.... but I moved the #ifdef down a line
and it builds fine

THANKS GUYS, KEEP UP THE GREAT WORK!

#ifdef ENABLE_COMMON_SSH <-- from here
    guac_rdp_settings* settings = rdp_client->settings;
                                        <-- to here
    /* If SFTP is enabled and SFTP uploads have not been disabled, it should
be
     * used for default uploads only if RDPDR is not enabled or its upload
     * directory has been set */
    if (rdp_client->sftp_filesystem != NULL &&
!settings->sftp_disable_upload) {
        if (!settings->drive_enabled || settings->sftp_directory != NULL)
            return guac_rdp_sftp_file_handler(user, stream, mimetype,
filename);
    }
#endif




--
Sent from: http://apache-guacamole-general-user-mailing-list.2363388.n4.nabble.com/

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]