I've been trying to update the documentation (currently on neworking), and one of the things that makes it hard is that there are a few old (legacy) command line options (e.g. --tftp).
Removing them is easy, but not really nice to users who depend on them. So I was thinking about a migration approach. I came up with two alternatives. Simplest approach is just to add a warning for the next release, and remove the option in the next+1 release. diff --git a/vl.c b/vl.c index 68c3b53..a972712 100644 --- a/vl.c +++ b/vl.c @@ -1941,6 +1941,13 @@ static const QEMUOption *lookup_opt(int argc, char **argv, return popt; } +static void display_legacy_warning(const char *option_name) +{ + fprintf(stderr, "%s is a legacy option, which will be removed in a future " + "version of QEMU. Consult the manual for replacement.\n", + option_name); +} + int main(int argc, char **argv, char **envp) { const char *gdbstub_dev = NULL; @@ -2277,12 +2284,15 @@ int main(int argc, char **argv, char **envp) break; #ifdef CONFIG_SLIRP case QEMU_OPTION_tftp: + display_legacy_warning("--tftp"); legacy_tftp_prefix = optarg; break; case QEMU_OPTION_bootp: + display_legacy_warning("--bootp"); legacy_bootp_filename = optarg; break; case QEMU_OPTION_redir: + display_legacy_warning("--redir"); if (net_slirp_redir(optarg) < 0) exit(1); break; The other alternative is to add an intermediate state, so its a warning in the next release, and requires an --enable-legacy-options command line argument to get it back in next+1. Then its gone in next+2. Thoughts? Comments? Brad