Bacula compile error in Tumbleweed

I have been running bacula on OpenSuse for many years. I have always compiled bacula from source. I recently upgraded two of systems from Leap 15.6 to Tumbleweed as this is older hardware. Now bacula will not compile. The console module has a number of errors, the first being: aggregate ‘termios old_term_params’ has incomplete type and cannot be defined. I can’t tell if the others are a direct consequence or not.
I compiled the same source on a Leap 15.6 system and the error doesn’t occur.
Would be grateful if someone could point me in the direction to go to sort this out. I know the version of g++ has changed but why would that suddenly find an error when the previous one didn’t.

Post the terminal output of the failed compiler run.

@dlwca Hi and welcome to the Forum :smile:

What are your configure options, likewise post the output of the final Configuration.

Here is the first part of the error:

Compiling conio.c
conio.c:150:23: error: aggregate ‘termios old_term_params’ has incomplete type and cannot be defined
  150 | static struct termios old_term_params;
      |                       ^~~~~~~~~~~~~~~
conio.c: In function ‘void rawmode(FILE*)’:
conio.c:939:19: error: aggregate ‘termios t’ has incomplete type and cannot be defined
  939 |    struct termios t;
      |                   ^
conio.c:948:8: error: ‘tcgetattr’ was not declared in this scope; did you mean ‘tigetstr’?
  948 |    if (tcgetattr(0, &old_term_params) != 0) {
      |        ^~~~~~~~~
      |        tigetstr

This is the config I run:

CFLAGS=“-g -O2 -Wall”
./configure
–sbindir=${prefix}/bin
–sysconfdir=${prefix}/etc
–docdir=${prefix}/html
–htmldir=${prefix}/html
–with-working-dir=${prefix}/working
–with-logdir=${prefix}/log
–with-pid-dir=${prefix}/working
–with-subsys-dir=${prefix}/working
–with-scriptdir=${prefix}/scripts
–with-plugindir=${prefix}/plugins
–libdir=${prefix}/lib
–enable-smartalloc
–enable-bat
–with-mysql
–with-dump-email=${email}
–with-job-email=${email}
–with-smtp-host=localhost
–with-baseport=9101

The resultant config file is 80 lines. Is there a way of showing it to you without it all being directly in this report?

You can share files using https://paste.opensuse.org/

Bacula config

The actual configure command you run with the options to setup for your system as well

That was in my previous post.

Add --disable-conio you might wish to include systemd support?

Thanks for that suggestion. Disabling conio allows the compilation to complete and bacula to run but it doesn’t explain the original problem as to why a source compiles OK on leap 15.6 but won’t with Tumbleweed.
What is the option to include systemd support and what does this provide?

I suspect the gcc version… you could try the earlier gcc versions avaialable in Tumbleweed, but that conio option was disabled on the openSUSE versions.

Just the systemd service files for starting dir, fd and sd if needed…

Thanks. I didn’t realise conio had been disabled in OpenSuse. I did try to use a previous version of gcc and either I got the parameter wrong or it didn’t work. Anyhow I now have bacula running again and much appreciate the assistance.

1 Like

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.