Skip to content

Build failure on Archlinux in docker container

I am trying to build master in a docker container, and every time without fail, it gets to a point in the build and fails. Here is the log of when it starts building:

Now type "make" to compile.
make  all-recursive
make[1]: Entering directory '/git/xfce-test/xfce4-panel/src/xfce4-panel'
Making all in libxfce4panel
make[2]: Entering directory '/git/xfce-test/xfce4-panel/src/xfce4-panel/libxfce4panel'
  GEN      libxfce4panel-enum-types.h
  GEN      libxfce4panel-alias.h
  GEN      libxfce4panel-aliasdef.c
  GEN      libxfce4panel-enum-types.c
  GEN      libxfce4panel-marshal.c
INFO: Reading libxfce4panel-marshal.list...
  GEN      libxfce4panel-marshal.h
INFO: Reading libxfce4panel-marshal.list...
make  all-am
make[3]: Entering directory '/git/xfce-test/xfce4-panel/src/xfce4-panel/libxfce4panel'
  CC       libxfce4panel_2_0_la-libxfce4panel-aliasdef.lo
  CC       libxfce4panel_2_0_la-libxfce4panel-enum-types.lo
  CC       libxfce4panel_2_0_la-libxfce4panel-marshal.lo
  CC       libxfce4panel_2_0_la-libxfce4panel-config.lo
  CC       libxfce4panel_2_0_la-xfce-arrow-button.lo
  CC       libxfce4panel_2_0_la-xfce-panel-convenience.lo
  CC       libxfce4panel_2_0_la-xfce-panel-plugin.lo
  CC       libxfce4panel_2_0_la-xfce-panel-plugin-provider.lo
  CC       libxfce4panel_2_0_la-xfce-panel-image.lo
  CCLD     libxfce4panel-2.0.la
  GISCAN   Libxfce4panel-2.0.gir
In file included from /usr/include/bits/libc-header-start.h:33,
                 from /usr/include/limits.h:26,
                 from /usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/include-fixed/limits.h:195,
                 from /usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/include-fixed/syslimits.h:7,
                 from /usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/include-fixed/limits.h:34,
                 from /usr/lib/glib-2.0/include/glibconfig.h:11,
                 from /usr/include/glib-2.0/glib/gtypes.h:32,
                 from /usr/include/glib-2.0/glib/galloca.h:32,
                 from /usr/include/glib-2.0/glib.h:30,
                 from /usr/include/glib-2.0/gobject/gbinding.h:28,
                 from /usr/include/glib-2.0/glib-object.h:22,
                 from /git/xfce-test/xfce4-panel/src/xfce4-panel/libxfce4panel/libxfce4panel-enum-types.h:6,
                 from /git/xfce-test/xfce4-panel/src/xfce4-panel/libxfce4panel/g-ir-cpp-qodd5qut.c:4:
/usr/include/features.h:397:4: warning: #warning _FORTIFY_SOURCE requires compiling with optimization (-O) [-Wcpp]
  397 | #  warning _FORTIFY_SOURCE requires compiling with optimization (-O)
      |    ^~~~~~~
  GICOMP   Libxfce4panel-2.0.gir
 VAPIGEN libxfce4panel-2.0.vapi
Libxfce4panel-2.0.gir:390.5-393.20: error: `Xfce' already contains a definition for `MAJOR_VERSION'
libxfce4util-1.0.vapi:95.2-95.31: note: previous definition of `MAJOR_VERSION' was here
Libxfce4panel-2.0.gir:403.5-406.20: error: `Xfce' already contains a definition for `MICRO_VERSION'
libxfce4util-1.0.vapi:97.2-97.31: note: previous definition of `MICRO_VERSION' was here
Libxfce4panel-2.0.gir:416.5-419.20: error: `Xfce' already contains a definition for `MINOR_VERSION'
libxfce4util-1.0.vapi:99.2-99.31: note: previous definition of `MINOR_VERSION' was here
make[3]: *** [/usr/share/vala/Makefile.vapigen:61: libxfce4panel-2.0.vapi] Error 1
make[3]: Leaving directory '/git/xfce-test/xfce4-panel/src/xfce4-panel/libxfce4panel'
make[2]: Leaving directory '/git/xfce-test/xfce4-panel/src/xfce4-panel/libxfce4panel'
make[2]: *** [Makefile:785: all] Error 2
make[1]: Leaving directory '/git/xfce-test/xfce4-panel/src/xfce4-panel'
make[1]: *** [Makefile:607: all-recursive] Error 1
make: *** [Makefile:518: all] Error 2
==> ERROR: A failure occurred in build().
    Aborting...

It looks like it has something to do with libxfce4util, which was built earlier, but I've been unable to trace the cause.

You can test it yourself by downloading the repo at: https://github.com/xfce-test/container-archlinux. The PKGBUILD files used to build all the packages are located in xfce/db.

Running the container

If you want to run the container, just run the ./app/scripts/build-xfce-test.sh script from the root folder. Alternatively, open the docker file and comment out the part that says RUN /container/scripts/install-xfce-packages.sh, build the container using the above script, then start it using the start script ./app/scripts/start-xfce-test.sh. Everything you need will be mounted at /container and /git/xfce-test folder.