FreeBSD: only assume iconv for FreeBSD >= 10
authorPhil Pennock <pdp@exim.org>
Sun, 12 Feb 2017 11:52:36 +0000 (06:52 -0500)
committerPhil Pennock <pdp@exim.org>
Sun, 12 Feb 2017 11:52:36 +0000 (06:52 -0500)
Since FreeBSD 10 is the oldest version of the OS supported by the
FreeBSD Project, we shouldn't need this.  But people are still using
older versions.  On closer examination, it's only been 6 weeks since 9.3
stopped being supported.  People ignoring the status are playing with
fire, getting no security updates, but let's not make that _our_
problem.

Guard the "use system iconv" #define for the libiconv package with an OS
version #ifdef.

src/OS/os.h-FreeBSD

index a67ca13..bf43e0a 100644 (file)
@@ -18,6 +18,9 @@ typedef struct flock flock_t;
  * says that libc has iconv since 2013, in 10-CURRENT.  FreeBSD man-pages
  * shows it included in 10.0-RELEASE.  Writing this in 2017, 10.3 is the
  * oldest supported release, so we should assume non-libiconv by default.
+ * (Actually, people still using old releases past EOL; we shouldn't support
+ * them but I don't want to deal with howls of complaints because we dare
+ * to not support the unsupported, so guard this on FreeBSD 10+)
  *
  * Thus we no longer override iconv.
  *
@@ -25,6 +28,10 @@ typedef struct flock flock_t;
  * to include-path (likely) then we'll get that.  So define a variable
  * which makes the libiconv try to not interfere with OS iconv.
  */
-#define LIBICONV_PLUG
+#if __FreeBSD__ >= 10
+# define LIBICONV_PLUG
+#endif
+/* for more specific version constraints, include <sys/param.h> and look at
+ * __FreeBSD_version */
 
 /* End */