It's not really up to the server author what stdin is: it's the user who runs the server that decides.
If stdin is a socket or the read end of a pipe/fifo (or even a regular file for that matter), wouldn't you want to read everything from it until EOF is reached, and then stop?
"So: con_eof is static means it won't ever process any more input after hitting con_eof, but the way qs is ran console input is not wanted anyway?" - pretty much. If stdin is not a terminal (for example /dev/null or a regular file), after you have reached EOF it will continue to poll as readable (POLLIN from poll() or readfds in select()) forever, but read() will return 0 (meaning EOF), so quakespasm will constantly try to read from it. (Previously, quakespasm was also mishandling a read of 0 bytes...
Patch attached, seems to work well.
Server loops with "Console input too long!" if stdin is /dev/null
Use pkg-config in a cross-compilation-friendly way
Spelling fixes
mpglibDBL appears to be an old copy of mpglib from mpg123, and has the same security...