Bug 247519 - Success status on error in Makefile.xtra may cause loss of valuable data
Summary: Success status on error in Makefile.xtra may cause loss of valuable data
Status: New
Alias: None
Product: Base System
Classification: Unclassified
Component: misc (show other bugs)
Version: Unspecified
Hardware: Any Any
: --- Affects Only Me
Assignee: freebsd-bugs (Nobody)
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-06-24 10:17 UTC by Stefan Eßer
Modified: 2020-06-24 10:17 UTC (History)
0 users

See Also:


Attachments
Make error case return error exit status (307 bytes, patch)
2020-06-24 10:17 UTC, Stefan Eßer
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Stefan Eßer freebsd_committer 2020-06-24 10:17:58 UTC
Created attachment 215904 [details]
Make error case return error exit status

When the condition for e.g. "ERROR: 'buildworld' is not a valid target for ..." is hit, make exits with a status of 0 indicating success.

This is a problem if "etcupdate" is used in such a situation, leading to an empty current directory and deletion of all rc files from /etc.

To repeat:

# cd /usr/src
# env WITH_DIRDEPS_BUILD=yes make buildworld
ERROR: 'buildworld' is not a valid target for amd64.

You can see the targets which are valid for a given machine
by running 'env MACHINE=<machine> make show-valid-targets'
For other information, read: 

# echo $?
0

(Besides WITH_DIRDEPS_BUILD=yes being suggested in the context of WITH_META_MODE=yes and leading to no targets being accepted except for the destroy targets, the above error text stops after "read:" without giving any indication what to read ...)

# env MACHINE=amd64 make show-valid-targets
Other targets:
  destroy
  destroy-arch
  destroy-host
  destroy-stage

The attached diff might not be the best solution, but it does at least prevent the removal of the rc files if etcupdate is invoked in such a situation.