Solved Unable to build x11/libX11: cannot find "tiffiop.h"

Today (January 12, 2016), on a newly-installed system, almost immediately after creating a fresh ports tree, I am unable to build x11/libX11: the compiler chokes on a header file's inclusion of tiffiop.h. This must be a recently-created bug, because I have built x11/libX11 on every FreeBSD system I have ever installed, and never before have I had this problem. I cannot reconfigure the port so as not to require this nonexistent file, because make config reports that there are no options to configure. Moreover, when I invoke find /usr/ports -name pkg-plist | xargs grep tiffiop.h I obtain no output; there is no port that obviously provides this file, and yet x11/libX11 cannot, on January 12, 2016, be build without it. What do I do now?
 
For reasons described in https://forums.freebsd.org/threads/how-do-you-get-linux-64-bit-emulation-to-work.54713 it is 11.0-CURRENT running on amd64 hardware. But that shouldn't make a difference to the building of a port. The ports are supposed to be independent of the OS version.

(This is, of course, not entirely true. I once had to upgrade a FreeBSD system in order to build a port, because the port unpacked an archive using options to tar that were unsupported on the core system. But stories like that are supposed to be extremely rare. There are FreeBSD systems still in production going back to version 4 that I know of. The people who maintain the ports know that, and they provide ports that, although they may depend on other ports, do not depend on any particular version of the core system.)
 
The reason for the behavior reported in the original posting, is that /usr/local/include/X11/extensions/XKBproto.h had been replaced by a header file from the tiff library, which abruptly ended in the middle of a line. /usr/local/include/X11/extensions/XI.h had been replaced by something even more bizarre, portions of a script. And finally, after those problems were solved by re-installing the appropriate ports, at the point where the installation of x11/libX11 involves invoking the command, inter alia, pkg-config --exists --print-errors 'bigreqsproto >= 1.1.0', the pkg-config command crashed and dumped core.

So, surprisingly, the question that I thought was irrelevant -- what FreeBSD version? -- turned out to be relevant after all, in that 11.0-CURRENT is, apparently, a version of FreeBSD where file contents are replaced by arbitrary data blocks belonging to other files. I am going to mark this thread as "Solved", even though it seems somewhat odd to do so, as there apparently is a serious problem in 11.0-CURRENT. Important programs like pkg-config really should not crash and dump core when asked simple questions, and file contents really should not be randomly replaced with other data on the disk. But I did successfully build x11/libX11, so in that sense, the problem has been solved.
 
A more specific answer to the question:
Code:
FreeBSD XXX 11.0-CURRENT FreeBSD 11.0-CURRENT #0 r293245: Wed Jan  6 21:12:34 UTC 2016  root@releng2.nyi.freebsd.org:/usr/obj/usr/src/sys/GENERIC  amd64
 
-CURRENT isn't just any FreeBSD version. It is _the_ development version, which might break at any time. It is not guaranteed to be in a working state all the time.
Had you read the relevant documentation (relevant chapter of the Handbook) you would have known that.
Pointy hat to: user.
 
Back
Top