summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoss Burton <ross.burton@intel.com>2019-09-13 13:04:31 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2019-09-16 23:02:45 +0100
commit7981d54fe68e68be7754ca18b38cd4e23e8a0c5e (patch)
tree2939e8cef3e291608e9960f8f105cd6c995537c5
parent92469aad50b623afa423c19d82ed2e3c667c5e6a (diff)
downloadpoky-7981d54fe68e68be7754ca18b38cd4e23e8a0c5e.tar.gz
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>
-rw-r--r--meta/recipes-gnome/gnome/adwaita-icon-theme/0001-Run-installation-commands-as-shell-jobs.patch12
1 files changed, 8 insertions, 4 deletions
diff --git a/meta/recipes-gnome/gnome/adwaita-icon-theme/0001-Run-installation-commands-as-shell-jobs.patch b/meta/recipes-gnome/gnome/adwaita-icon-theme/0001-Run-installation-commands-as-shell-jobs.patch
index 6c38e237f4..c4d7e2583b 100644
--- a/meta/recipes-gnome/gnome/adwaita-icon-theme/0001-Run-installation-commands-as-shell-jobs.patch
+++ b/meta/recipes-gnome/gnome/adwaita-icon-theme/0001-Run-installation-commands-as-shell-jobs.patch
@@ -24,7 +24,8 @@ index 1c940a5..3998ee6 100644
24- $(install_sh_DATA) $(top_srcdir)/$(SVGOUTDIR)/$$size/$$file $(DESTDIR)$(themedir)/$$size/$$file; \ 24- $(install_sh_DATA) $(top_srcdir)/$(SVGOUTDIR)/$$size/$$file $(DESTDIR)$(themedir)/$$size/$$file; \
25+ $(install_sh_DATA) $(top_srcdir)/$(SVGOUTDIR)/$$size/$$file $(DESTDIR)$(themedir)/$$size/$$file & \ 25+ $(install_sh_DATA) $(top_srcdir)/$(SVGOUTDIR)/$$size/$$file $(DESTDIR)$(themedir)/$$size/$$file & \
26 done; \ 26 done; \
27 done; 27- done;
28+ done; \
28+ wait 29+ wait
29 30
30 ## FIXME we should add a way to remove links generated by icon mapping 31 ## FIXME we should add a way to remove links generated by icon mapping
@@ -45,7 +46,8 @@ index 86f4d7c..3fae8c1 100644
45 $(mkdir_p) $(DESTDIR)$(themedir)/scalable-up-to-32/$$context; \ 46 $(mkdir_p) $(DESTDIR)$(themedir)/scalable-up-to-32/$$context; \
46- $(install_sh_DATA) $(top_srcdir)/$(SVGOUTDIR)/scalable-up-to-32/$$file $(DESTDIR)$(themedir)/scalable-up-to-32/$$file; \ 47- $(install_sh_DATA) $(top_srcdir)/$(SVGOUTDIR)/scalable-up-to-32/$$file $(DESTDIR)$(themedir)/scalable-up-to-32/$$file; \
47+ $(install_sh_DATA) $(top_srcdir)/$(SVGOUTDIR)/scalable-up-to-32/$$file $(DESTDIR)$(themedir)/scalable-up-to-32/$$file & \ 48+ $(install_sh_DATA) $(top_srcdir)/$(SVGOUTDIR)/scalable-up-to-32/$$file $(DESTDIR)$(themedir)/scalable-up-to-32/$$file & \
48 done 49- done
50+ done; \
49+ wait 51+ wait
50 52
51 uninstall-local: 53 uninstall-local:
@@ -61,7 +63,8 @@ index 24aac9b..61ba071 100644
61- $(install_sh_DATA) $(top_srcdir)/$(SVGOUTDIR)/$$size/$$file $(DESTDIR)$(themedir)/$$size/$$file; \ 63- $(install_sh_DATA) $(top_srcdir)/$(SVGOUTDIR)/$$size/$$file $(DESTDIR)$(themedir)/$$size/$$file; \
62+ $(install_sh_DATA) $(top_srcdir)/$(SVGOUTDIR)/$$size/$$file $(DESTDIR)$(themedir)/$$size/$$file & \ 64+ $(install_sh_DATA) $(top_srcdir)/$(SVGOUTDIR)/$$size/$$file $(DESTDIR)$(themedir)/$$size/$$file & \
63 done; \ 65 done; \
64 done 66- done
67+ done; \
65 for file in `cd $(top_srcdir)/$(SVGOUTDIR)/scalable; find . -name "*.svg"`; do \ 68 for file in `cd $(top_srcdir)/$(SVGOUTDIR)/scalable; find . -name "*.svg"`; do \
66 context="`dirname $$file`"; \ 69 context="`dirname $$file`"; \
67 $(mkdir_p) $(DESTDIR)$(themedir)/scalable/$$context; \ 70 $(mkdir_p) $(DESTDIR)$(themedir)/scalable/$$context; \
@@ -72,7 +75,8 @@ index 24aac9b..61ba071 100644
72- $(GTK_ENCODE_SYMBOLIC_SVG) $(top_srcdir)/$(SVGOUTDIR)/scalable/$$file $$size -o $(DESTDIR)$(themedir)/$$size/$$context; \ 75- $(GTK_ENCODE_SYMBOLIC_SVG) $(top_srcdir)/$(SVGOUTDIR)/scalable/$$file $$size -o $(DESTDIR)$(themedir)/$$size/$$context; \
73+ $(GTK_ENCODE_SYMBOLIC_SVG) $(top_srcdir)/$(SVGOUTDIR)/scalable/$$file $$size -o $(DESTDIR)$(themedir)/$$size/$$context & \ 76+ $(GTK_ENCODE_SYMBOLIC_SVG) $(top_srcdir)/$(SVGOUTDIR)/scalable/$$file $$size -o $(DESTDIR)$(themedir)/$$size/$$context & \
74 done \ 77 done \
75 done 78- done
79+ done; \
76+ wait 80+ wait
77 81
78 uninstall-local: 82 uninstall-local: