From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Jim Meyering Newsgroups: gmane.emacs.devel Subject: Re: Still unable to build trunk Date: Sun, 23 Jan 2011 18:35:17 +0100 Message-ID: <87vd1fbk16.fsf@meyering.net> References: <87y66fv2d3.fsf@stupidchicken.com> <4D388F7F.20708@swipnet.se> <87r5c7jk5m.fsf@stupidchicken.com> <4D39EF9C.1050804@cs.ucla.edu> <4D3A8666.4070609@cs.ucla.edu> <877hdvd49f.fsf@meyering.net> <83mxmrzhb6.fsf@gnu.org> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: dough.gmane.org 1295804154 17331 80.91.229.12 (23 Jan 2011 17:35:54 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Sun, 23 Jan 2011 17:35:54 +0000 (UTC) Cc: cyd@stupidchicken.com, eggert@cs.ucla.edu, jan.h.d@swipnet.se, emacs-devel@gnu.org To: Eli Zaretskii Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sun Jan 23 18:35:49 2011 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1Ph3qu-00069c-8b for ged-emacs-devel@m.gmane.org; Sun, 23 Jan 2011 18:35:48 +0100 Original-Received: from localhost ([127.0.0.1]:58174 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Ph3qc-0002mv-WD for ged-emacs-devel@m.gmane.org; Sun, 23 Jan 2011 12:35:31 -0500 Original-Received: from [140.186.70.92] (port=41321 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Ph3qW-0002ml-Uh for emacs-devel@gnu.org; Sun, 23 Jan 2011 12:35:26 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Ph3qV-0005tM-OG for emacs-devel@gnu.org; Sun, 23 Jan 2011 12:35:24 -0500 Original-Received: from mx.meyering.net ([82.230.74.64]:55997) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Ph3qR-0005sV-Nu; Sun, 23 Jan 2011 12:35:20 -0500 Original-Received: by rho.meyering.net (Acme Bit-Twister, from userid 1000) id BB3F860116; Sun, 23 Jan 2011 18:35:17 +0100 (CET) In-Reply-To: <83mxmrzhb6.fsf@gnu.org> (Eli Zaretskii's message of "Sun, 23 Jan 2011 19:00:13 +0200") Original-Lines: 114 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:134865 Archived-At: Eli Zaretskii wrote: >> From: Jim Meyering >> Cc: Paul Eggert , cyd@stupidchicken.com, >> jan.h.d@swipnet.se, emacs-devel@gnu.org >> Date: Sun, 23 Jan 2011 16:33:00 +0100 >> >> In many gnulib-using projects, we address two types of >> users who build from source: >> - those who build from a distribution tarball >> - those who build from upstream clone/checkout >> >> Obviously, when building from a tarball, there are only the usual, minimal >> requirements specified in the GCS. E.g., use of autoconf, automake, makeinfo, >> etc. are not required. >> >> However, those who build from the latest sources, as checked out >> from version control must have tools that meet certain standards. >> [...] >> and an automated check for the presence and minimal-acceptable versions >> of build-related tools (this is from bootstrap.conf): >> >> # Build prerequisites >> buildreq="\ >> autoconf 2.62 >> automake 1.11.1 >> autopoint - >> bison - >> gettext 0.17 >> git 1.4.4 >> gperf - >> gzip - >> makeinfo - >> patch - >> perl 5.5 >> rsync - >> tar - >> xz - >> " > > It sounds harsh to me to ask every one who builds out of VCS to have > to climb such a steep curve. If you read the reports in this forum, Requiring the installation of a few commonly-used and very portable tools does not make a steep curve. It's more of a small, one-time investment. Imposing new requirements like this is not harsh when you also provide adequate instructions for meeting them. Also, realize that if you're able to build-from-clone on at least one system and want to build occasionally on another system that lacks some of the required tools, one work-around is to build a tarball of your working sources, copy that to the constrained system and just run ./configure && make as usual. Of course, this is impractical if you have to do it more than occasionally. > you will see that many of those who do that are no more knowledgeable > in build tools than those who build distribution tarballs. A person > who installs bzr does not necessarily know about autotools. She is > not necessarily a "developer" of Emacs, just someone who wants the > latest and the greatest. The build-from-clone process does not require knowing anything more about autotools than the package names -- and that is only to install the packages if they're not already available. > Even core Emacs maintainers have trouble with these prerequisites, for > any number of reasons (e.g., Autoconf installed on fencepost is too > old for what Paul added to the Emacs tree, so until the GNU admins > upgrade that at my request, I cannot build the current tree). Run the script below on fencepost, following the instructions in its --help, and you should be good to go. > Imagine > what will happen to people with less experience and grey hair, > especially if they do that on systems they don't own. It is most definitely a trade-off, but afaik, one that we have managed well with coreutils, diffutils, gzip, grep, parted, etc. On those projects, no one has reported trouble with the build process for some time. You have to balance the needs of the many (to be able to build conveniently from the latest, cloned sources) against the desire of the developers not to waste time with complications involved in using version-controlled, yet generated, source files. For those who are unable to install the required packages on a system they use for development, I wrote a script that automates the process of downloading and building-from source a few of the required packages: http://people.redhat.com/meyering/autotools-install Here's its --help output: Usage: autotools-install [OPTION]... Download, build, and install some tools. Options: --prefix=PREFIX install tools under specified directory --skip-check do not run make check (this can save 50+ min) --help display this help and exit For example, to install programs into $HOME/autotools/bin, run this command: autotools-install --prefix=$HOME/autotools If you've already verified that your system/environment can build working versions of these tools, you can make this script complete in just a minute or two (rather than about an hour if you let all make check tests run) by invoking it like this: autotools-install --prefix=$HOME/autotools --skip-check