Building X11

Karl Vogel vogelke at
Wed Sep 14 22:37:14 UTC 2016

On Tue, Sep 13, 2016 at 07:28:19PM -0800, CK wrote:
CK> deciding to install X11 from scratch to avoid the massive
CK> amounts of "junk" that is required to be downloaded and
CK> installed with a "ports" installation [...]

    FWIW, I tried installing a new desktop many years ago, and got lots
    of nagging messages about certain X libraries being out of date.
    I updated a few of those at a time (massive mistake, I admit) and
    shortly wound up with a system that was unbootable.

CK> is it impossible to perform the work of using
CK> standard Unix tools?

    It's certainly possible, but...

CK> The core and extension protocol descriptions are in XML, with a
CK> program written in Python creating the C bindings.  (Previous
CK> versions used m4). [from Wikipedia]

    ...I think XML is the big turd in the pipe here.  If someone has
    an M4 program that can *correctly* parse and handle XML, I'm pretty
    sure I'd go blind and/or sterile trying to read it.

    For something as complex as C-bindings for a huge software base like
    X11, maybe you need a language like XML -- I'm not competent to say.
    If XML is the best way to handle this, you *DO* need a language with
    a decent XML library; Perl, Python, or Javascript are most common
    if you're talking about something you don't need to compile.

    Cool kids don't use Perl any more, and nobody with any sense would use
    JS as part of a Unix build process, so that narrows things down a bit.

    If the C-bindings don't change that often, and if they're
    OS-dependent, I wouldn't mind seeing a directory tree like under
    the Perl sources (cygwin, djgpp, bsd, solaris, win32, etc) with
    basic prebuilt C-binding files, along with a configure option that
    says "use this directory instead of running".  However,
    I don't even know if that's possible.

CK> and the same kind of nonsense can be found in configure scripts
CK> that detect Gawk or some other GNU program, and then refuse to
CK> continue compilation without Glib, and then if you install that,
CK> then they want Iconv, and then if you install that, ./configure
CK> wants Libintl, and so on, like endless fucking GNU octopus
CK> tentacles that try to take over a users entire system.

    I've run into that, and the easiest way to kill the octopus is to run
    "./configure --help" and use "--disable-nls", "--without-libintl",
    etc. to kill as much crap as I can and still get a working program.

Karl Vogel                      I don't speak for the USAF or my company

Woman gets revenge on babe-watching beau by glueing his eyes shut
                                 --"National Examiner" article, 15 Aug 2005

More information about the freebsd-questions mailing list