MEDIUM: config: mark "grace" as deprecated

This was introduced 15 years ago or so to delay the stopping of some
services so that a monitoring device could detect its port being down
before services were stopped. Since then, clean reloads were implemented
and this doesn't cope well with reload at all, preventing the new process
from seamlessly binding, and forcing processes to coexist with half-baked
configurations.

Now it has become a real problem because there's a significant code
portion in the proxies that is solely dedicated to this obsolete feature,
and dealing with its special cases eases the introduction of bugs in
other places so it's about time that it goes.

We could tentatively schedule its removal for 2.4 with a hard deadline
for 2.5 in any case.
diff --git a/doc/configuration.txt b/doc/configuration.txt
index 083f1f6..ce70004 100644
--- a/doc/configuration.txt
+++ b/doc/configuration.txt
@@ -4498,7 +4498,7 @@
   See also : "maxconn", "server"
 
 
-grace <time>
+grace <time> (deprecated)
   Maintain a proxy operational for some time after a soft stop
   May be used in sections :   defaults | frontend | listen | backend
                                  yes   |    yes   |   yes  |   yes
diff --git a/src/cfgparse-listen.c b/src/cfgparse-listen.c
index cda55e6..6f324fa 100644
--- a/src/cfgparse-listen.c
+++ b/src/cfgparse-listen.c
@@ -2602,6 +2602,9 @@
 		curproxy->grace = val;
 		if (alertif_too_many_args(1, file, linenum, args, &err_code))
 			goto out;
+
+		ha_warning("parsing [%s:%d]: the '%s' is deprecated and will be removed in a future version.\n",
+			   file, linenum, args[0]);
 	}
 	else if (!strcmp(args[0], "dispatch")) {  /* dispatch address */
 		struct sockaddr_storage *sk;