From owner-freebsd-questions@freebsd.org Wed Sep 14 22:37:14 2016 Return-Path: Delivered-To: freebsd-questions@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 54FEEBDB2C4 for ; Wed, 14 Sep 2016 22:37:14 +0000 (UTC) (envelope-from prvs=1058ea0cd4=vogelke@pobox.com) Received: from LACKLAND-MAIL2.afnoc.af.mil (lackland-mail2.afnoc.af.mil [132.3.45.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "LACKLAND-MAIL2.afnoc.af.mil", Issuer "DOD CA-28" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id EC7A9195F for ; Wed, 14 Sep 2016 22:37:13 +0000 (UTC) (envelope-from prvs=1058ea0cd4=vogelke@pobox.com) Received-PRA: neutral (us.af.mil: 131.9.254.134 is neither permitted nor denied by domain of pobox.com) client-ip=131.9.254.134; envelope-from=vogelke@pobox.com; helo=us.af.mil; Received-SPF: neutral (us.af.mil: 131.9.254.134 is neither permitted nor denied by domain of pobox.com) client-ip=131.9.254.134; envelope-from=vogelke@pobox.com; helo=us.af.mil; Received: from us.af.mil (unknown [131.9.254.134]) by LACKLAND-MAIL2.afnoc.af.mil with smtp (TLS: TLSv1/SSLv3,256bits,DHE-RSA-AES256-SHA) id 2a3e_7e45_a06014f7_5bb9_454a_932b_db60ca7063d5; Wed, 14 Sep 2016 22:36:59 +0000 Received: from ([131.9.40.227]) by 52vejx-mr-003.us.af.mil with SMTP id 40Z0FN1.240781580; Wed, 14 Sep 2016 17:06:46 -0500 Received: (qmail 24693 invoked by uid 100); 14 Sep 2016 22:06:45 -0000 From: "Karl Vogel" Date: Wed, 14 Sep 2016 18:06:45 -0400 To: freebsd-questions@freebsd.org Subject: Re: Building X11 Message-ID: <20160914220645.GA22847@bsd118.wpafb.af.mil> References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.6.0 (2016-04-01) X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Sep 2016 22:37:14 -0000 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 c_client.py 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 c_client.py". 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