diff options
author | Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> | 2012-01-21 01:01:12 +0100 |
---|---|---|
committer | Peter Korsgaard <jacmet@sunsite.dk> | 2012-02-02 22:52:35 +0100 |
commit | 5fe4b2c3998bdeae8a1546ce57e00aad5cdeb17a (patch) | |
tree | 4d760000940d8a763c2fee573ef271dcb928b88c | |
parent | a23c0e59684628f69615e25ad1b9dbca972a3815 (diff) |
pkg-infra: improve reliability of foo-install
Running foo-uninstall has a high likelyhood of failing, because we
remove a lot of directories from the target. To improve the reliability,
remove the stamp files before calling the uninstall commands, and add
the -k option to the sub-make.
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
-rw-r--r-- | package/Makefile.autotools.in | 5 | ||||
-rw-r--r-- | package/Makefile.package.in | 5 |
2 files changed, 7 insertions, 3 deletions
diff --git a/package/Makefile.autotools.in b/package/Makefile.autotools.in index 64e0730b8..fd118dc47 100644 --- a/package/Makefile.autotools.in +++ b/package/Makefile.autotools.in @@ -285,10 +285,13 @@ endif # # Uninstall from target step. Only define it if not already defined # by the package .mk file. +# Autotools Makefiles do uninstall with ( cd ...; rm -f ... ) +# Since we remove a lot of directories in target-finalize, this is likely +# to fail. Therefore add -k flag. # ifndef $(2)_UNINSTALL_TARGET_CMDS define $(2)_UNINSTALL_TARGET_CMDS - $$(TARGET_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) $$($$(PKG)_UNINSTALL_TARGET_OPT) -C $$($$(PKG)_SRCDIR) + $$(TARGET_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) -k $$($$(PKG)_UNINSTALL_TARGET_OPT) -C $$($$(PKG)_SRCDIR) endef endif diff --git a/package/Makefile.package.in b/package/Makefile.package.in index 31f5ab646..1ace683c2 100644 --- a/package/Makefile.package.in +++ b/package/Makefile.package.in @@ -442,12 +442,13 @@ $(BUILD_DIR)/%/.stamp_cleaned: rm -f $(@D)/.stamp_built # Uninstall package from target and staging +# Uninstall commands tend to fail, so remove the stamp files first $(BUILD_DIR)/%/.stamp_uninstalled: @$(call MESSAGE,"Uninstalling") - $($(PKG)_UNINSTALL_STAGING_CMDS) rm -f $($(PKG)_TARGET_INSTALL_STAGING) - $($(PKG)_UNINSTALL_TARGET_CMDS) rm -f $($(PKG)_TARGET_INSTALL_TARGET) + $($(PKG)_UNINSTALL_STAGING_CMDS) + $($(PKG)_UNINSTALL_TARGET_CMDS) # Remove package sources $(BUILD_DIR)/%/.stamp_dircleaned: |