Source: ibus
Version: 1.5.28-3
Severity: serious
Justification: fails to build twice in a row

Hi,

ibus/experimental fails to build twice in a row. (I haven't verified
whether the version in sid is also affected by this bug.)

The first build succeeds and a subsequent debian/rules clean removes
src/ibusenumtypes.h (and maybe other required files):

 debian/rules clean
dh clean --with gir,python3
   dh_auto_clean
        make -j3 distclean
make[1]: Entering directory '/build/ibus-1.5.28'
Making distclean in src
make[2]: Entering directory '/build/ibus-1.5.28/src'
Making distclean in .
make[3]: Entering directory '/build/ibus-1.5.28/src'
test -z "IBus-1.0.gir IBus-1.0.typelib ibusmarshalers.c ibusmarshalers.h  
ibusenumtypes.c ibusenumtypes.h  ibusresources.c ibusresources.h   
ibus.gresources.xml stamp-ibusmarshalers.h stamp-ibusenumtypes.h " || rm -f 
IBus-1.0.gir IBus-1.0.typelib ibusmarshal
ers.c ibusmarshalers.h  ibusenumtypes.c ibusenumtypes.h  ibusresources.c 
ibusresources.h   ibus.gresources.xml stamp-ibusmarshalers.h 
stamp-ibusenumtypes.h
...

That file doesn't get regenerated before it is used during the second build, 
resulting in:

...
( top_builddir=`cd .. && pwd`; \
cd . && /usr/bin/glib-mkenums --template ibusenumtypes.c.template ibus.h 
ibusaccelgroup.h ibusattribute.h ibusattrlist.h ibusbus.h ibuscomponent.h 
ibusconfig.h ibusconfigservice.h ibusdebug.h ibusemoji.h ibusengine.h 
ibusenginedesc.h ibusenginesimple.h ibuse
rror.h ibusfactory.h ibushotkey.h ibusinputcontext.h ibuskeymap.h ibuskeys.h 
ibuskeysyms-compat.h ibuskeysyms.h ibuslookuptable.h ibusobject.h 
ibusobservedpath.h ibuspanelservice.h ibusproperty.h ibusproplist.h ibusproxy.h 
ibusregistry.h ibusserializable.h i
busservice.h ibusshare.h ibustext.h ibustypes.h ibusunicode.h ibusutil.h 
ibusxevent.h ibusxml.h  | \
        sed 's/i_bus_/ibus_/g' | \
        sed 's/I_TYPE_BUS_/IBUS_TYPE_/g') > \
ibusenumtypes.c.tmp && mv ibusenumtypes.c.tmp ibusenumtypes.c
( top_builddir=`cd .. && pwd`; \
cd . && /usr/bin/glib-mkenums --template ibusenumtypes.h.template ibus.h 
ibusaccelgroup.h ibusattribute.h ibusattrlist.h ibusbus.h ibuscomponent.h 
ibusconfig.h ibusconfigservice.h ibusdebug.h ibusemoji.h ibusengine.h 
ibusenginedesc.h ibusenginesimple.h ibuse
rror.h ibusfactory.h ibushotkey.h ibusinputcontext.h ibuskeymap.h ibuskeys.h 
ibuskeysyms-compat.h ibuskeysyms.h ibuslookuptable.h ibusobject.h 
ibusobservedpath.h ibuspanelservice.h ibusproperty.h ibusproplist.h ibusproxy.h 
ibusregistry.h ibusserializable.h i
busservice.h ibusshare.h ibustext.h ibustypes.h ibusunicode.h ibusutil.h 
ibusxevent.h ibusxml.h  | \
        sed 's/i_bus_/ibus_/g' | \
        sed 's/I_TYPE_BUS_/IBUS_TYPE_/g') > \
ibusenumtypes.h.tmp && mv ibusenumtypes.h.tmp ibusenumtypes.h
INFO: Reading ./ibusmarshalers.list...
sed -e "s|\@ENDIAN\@|little|g" \
ibus.gresources.xml.in > ibus.gresources.xml.tmp && \
mv ibus.gresources.xml.tmp ibus.gresources.xml
gcc -DHAVE_CONFIG_H -I. -I..  -DG_LOG_DOMAIN=\"IBUS\" -I/usr/include/glib-2.0 
-I/usr/lib/x86_64-linux-gnu/glib-2.0/include  -I/usr/include/glib-2.0 
-I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/glib-2.0 
-I/usr/lib/x86_64-linux-gnu/glib-2.0/incl
ude -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/gio-unix-2.0 
-pthread -DIBUS_CACHE_DIR=\""/var/cache/ibus"\" 
-DIBUS_DATA_DIR=\"/usr/share/ibus\" -DIBUS_DISABLE_DEPRECATION_WARNINGS 
-DIBUS_COMPILATION -DISOCODES_PREFIX=\"/usr\" -DX11_DATA_PREF
IX=\"/usr\"  -DENABLE_EMOJI_DICT -Wdate-time -D_FORTIFY_SOURCE=2  -g -O2 
-ffile-prefix-map=/build/ibus-1.5.28=. -fstack-protector-strong -Wformat 
-Werror=format-security -Wall -pedantic -c -o 
gen_internal_compose_table-gencomposetable.o `test -f 'gencomposet
able.c' || echo './'`gencomposetable.c
In file included from ./ibusobject.h:41,
                 from ./ibus.h:31,
                 from gencomposetable.c:23:
./ibusdebug.h:49:31: warning: ISO C does not permit named variadic macros 
[-Wvariadic-macros]
   49 | #define ibus_warning(msg, args...) \
      |                               ^~~
gcc -DHAVE_CONFIG_H -I. -I..  -DG_LOG_DOMAIN=\"IBUS\" -I/usr/include/glib-2.0 
-I/usr/lib/x86_64-linux-gnu/glib-2.0/include  -I/usr/include/glib-2.0 
-I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/glib-2.0 
-I/usr/lib/x86_64-linux-gnu/glib-2.0/incl
ude -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/gio-unix-2.0 
-pthread -DIBUS_CACHE_DIR=\""/var/cache/ibus"\" 
-DIBUS_DATA_DIR=\"/usr/share/ibus\" -DIBUS_DISABLE_DEPRECATION_WARNINGS 
-DIBUS_COMPILATION -DISOCODES_PREFIX=\"/usr\" -DX11_DATA_PREF
IX=\"/usr\"  -DENABLE_EMOJI_DICT -Wdate-time -D_FORTIFY_SOURCE=2  -g -O2 
-ffile-prefix-map=/build/ibus-1.5.28=. -fstack-protector-strong -Wformat 
-Werror=format-security -Wall -pedantic -c -o 
gen_internal_compose_table-ibuscomposetable.o `test -f 'ibuscompos
etable.c' || echo './'`ibuscomposetable.c
./ibus.h:49:10: fatal error: ibusenumtypes.h: No such file or directory
   49 | #include <ibusenumtypes.h>
      |          ^~~~~~~~~~~~~~~~~
compilation terminated.
make[4]: *** [Makefile:1098: gen_internal_compose_table-gencomposetable.o] 
Error 1


My guess is that there is a dependency missing s.t. the generated source
code is made first, and therefter stuff gets compiled.
The current setup probably works for a sequential build, but in a
parallel build the generation and usage seem to have happened
concurrently.

Andreas

Attachment: ibus_1.5.28-3_twice.log.gz
Description: application/gzip

Reply via email to