From e18b0c8f3ac765e0373a1c33140afee0b59f07b4 Mon Sep 17 00:00:00 2001 From: Michael Olbrich Date: Thu, 30 Jun 2016 17:45:34 +0200 Subject: host-dummy-install-info: new package For each package with info pages, install-info creates '//share/info/dir'. If packages are built in parallel, then multiple install.post stages may try to create this file in at exactly the same time and fail. This fake install-info does nothing, so to avoid this race condition. Signed-off-by: Michael Olbrich --- rules/host-dummy-install-info.in | 7 +++++++ rules/host-dummy-install-info.make | 26 ++++++++++++++++++++++++++ rules/post/virtual.make | 4 ++++ scripts/lib/ptxd_lib_dgen.awk | 2 ++ 4 files changed, 39 insertions(+) create mode 100644 rules/host-dummy-install-info.in create mode 100644 rules/host-dummy-install-info.make diff --git a/rules/host-dummy-install-info.in b/rules/host-dummy-install-info.in new file mode 100644 index 000000000..b715d9237 --- /dev/null +++ b/rules/host-dummy-install-info.in @@ -0,0 +1,7 @@ +## SECTION=hosttools_noprompt + +config HOST_DUMMY_INSTALL_INFO + bool + default y + help + Fake install-info that does nothing diff --git a/rules/host-dummy-install-info.make b/rules/host-dummy-install-info.make new file mode 100644 index 000000000..ea19d8804 --- /dev/null +++ b/rules/host-dummy-install-info.make @@ -0,0 +1,26 @@ +# -*-makefile-*- +# +# Copyright (C) 2016 by Michael Olbrich +# +# See CREDITS for details about who has contributed to this project. +# +# For further information about the PTXdist project and license conditions +# see the README file. +# + +# +# We provide this package +# +HOST_PACKAGES-$(PTXCONF_HOST_DUMMY_INSTALL_INFO) += host-dummy-install-info +HOST_DUMMY_INSTALL_INFO_LICENSE := ignore + +# ---------------------------------------------------------------------------- +# Install +# ---------------------------------------------------------------------------- + +$(STATEDIR)/host-dummy-install-info.install: + @$(call targetinfo) + @ln -sfv /bin/true $(PTXDIST_SYSROOT_HOST)/bin/install-info + @$(call touch) + +# vim: syntax=make diff --git a/rules/post/virtual.make b/rules/post/virtual.make index 2d5a2b5e2..a6ea68a8b 100644 --- a/rules/post/virtual.make +++ b/rules/post/virtual.make @@ -33,6 +33,10 @@ $(STATEDIR)/virtual-cross-tools.install: @$(call touch) +ifdef PTXCONF_HOST_DUMMY_INSTALL_INFO +$(STATEDIR)/virtual-host-tools.install: $(STATEDIR)/host-dummy-install-info.install.post +endif + ifdef PTXCONF_HOST_PKG_CONFIG $(STATEDIR)/virtual-host-tools.install: $(STATEDIR)/host-pkg-config.install.post endif diff --git a/scripts/lib/ptxd_lib_dgen.awk b/scripts/lib/ptxd_lib_dgen.awk index f71a12bc4..bbf8aaddd 100644 --- a/scripts/lib/ptxd_lib_dgen.awk +++ b/scripts/lib/ptxd_lib_dgen.awk @@ -377,6 +377,8 @@ function write_deps_pkg_active(this_PKG, this_pkg, prefix) { # add deps to virtual pkgs # function write_deps_pkg_active_virtual(this_PKG, this_pkg, prefix) { + if (this_pkg ~ /^host-dummy-install-info$/) + return; if (this_pkg ~ /^host-pkg-config$/) return; if (this_pkg ~ /^host-chrpath$/) -- cgit v1.2.3