mirror of
https://git.yoctoproject.org/poky
synced 2026-04-04 05:02:21 +02:00
adwaita-icon-theme: fix rare install race
There have been rare errors during the build of adwaita-icon-theme, such as:
Exception: bb.process.ExecutionError: Execution of '.../temp/run.sysroot_stage_all.45186' failed with exit code 2:
cpio: ./icons/Adwaita/32x32/legacy/_inst.34160_: Cannot stat: No such file or directory
cpio: ./icons/Adwaita/32x32/legacy/_inst.33428_: Cannot stat: No such file or directory
cpio: ./icons/Adwaita/32x32/legacy/_inst.35421_: Cannot stat: No such file or directory
cpio: ./icons/Adwaita/32x32/legacy/_inst.34533_: Cannot stat: No such file or directory
cpio: ./icons/Adwaita/32x32/legacy/_inst.35366_: Cannot stat: No such file or directory
The problem was that a previous optimisation (oe-core cd9af17028) to massively
increase the install speed (by parallelling the hundreds of installs) was subtly
wrong. It was essentially doing this:
for i in list; do
install i &
done
wait
In pure shell this does parallelise the install commands and then wait for them
all to finish before exiting, but in Makefiles *each line in a separate shell*. The actual Makefile is closer to this:
for i in list; do \
install i & \
done
wait
The backslashes are required to write a multi-line for loop in a Makefile, but
note that when the loop ends the shell exits and all of the install processes
that are still running are disowned. The wait command then executes in a new
shell, and there are no childen to wait for.
The fix is trivial: add more backslashes so that the wait is part of the same
shell.
(From OE-Core rev: f969a8ff160390726565421d4c9b367e49172487)
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
92469aad50
commit
7981d54fe6
@@ -24,7 +24,8 @@ index 1c940a5..3998ee6 100644
|
||||
- $(install_sh_DATA) $(top_srcdir)/$(SVGOUTDIR)/$$size/$$file $(DESTDIR)$(themedir)/$$size/$$file; \
|
||||
+ $(install_sh_DATA) $(top_srcdir)/$(SVGOUTDIR)/$$size/$$file $(DESTDIR)$(themedir)/$$size/$$file & \
|
||||
done; \
|
||||
done;
|
||||
- done;
|
||||
+ done; \
|
||||
+ wait
|
||||
|
||||
## FIXME we should add a way to remove links generated by icon mapping
|
||||
@@ -45,7 +46,8 @@ index 86f4d7c..3fae8c1 100644
|
||||
$(mkdir_p) $(DESTDIR)$(themedir)/scalable-up-to-32/$$context; \
|
||||
- $(install_sh_DATA) $(top_srcdir)/$(SVGOUTDIR)/scalable-up-to-32/$$file $(DESTDIR)$(themedir)/scalable-up-to-32/$$file; \
|
||||
+ $(install_sh_DATA) $(top_srcdir)/$(SVGOUTDIR)/scalable-up-to-32/$$file $(DESTDIR)$(themedir)/scalable-up-to-32/$$file & \
|
||||
done
|
||||
- done
|
||||
+ done; \
|
||||
+ wait
|
||||
|
||||
uninstall-local:
|
||||
@@ -61,7 +63,8 @@ index 24aac9b..61ba071 100644
|
||||
- $(install_sh_DATA) $(top_srcdir)/$(SVGOUTDIR)/$$size/$$file $(DESTDIR)$(themedir)/$$size/$$file; \
|
||||
+ $(install_sh_DATA) $(top_srcdir)/$(SVGOUTDIR)/$$size/$$file $(DESTDIR)$(themedir)/$$size/$$file & \
|
||||
done; \
|
||||
done
|
||||
- done
|
||||
+ done; \
|
||||
for file in `cd $(top_srcdir)/$(SVGOUTDIR)/scalable; find . -name "*.svg"`; do \
|
||||
context="`dirname $$file`"; \
|
||||
$(mkdir_p) $(DESTDIR)$(themedir)/scalable/$$context; \
|
||||
@@ -72,7 +75,8 @@ index 24aac9b..61ba071 100644
|
||||
- $(GTK_ENCODE_SYMBOLIC_SVG) $(top_srcdir)/$(SVGOUTDIR)/scalable/$$file $$size -o $(DESTDIR)$(themedir)/$$size/$$context; \
|
||||
+ $(GTK_ENCODE_SYMBOLIC_SVG) $(top_srcdir)/$(SVGOUTDIR)/scalable/$$file $$size -o $(DESTDIR)$(themedir)/$$size/$$context & \
|
||||
done \
|
||||
done
|
||||
- done
|
||||
+ done; \
|
||||
+ wait
|
||||
|
||||
uninstall-local:
|
||||
|
||||
Reference in New Issue
Block a user