git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Greg Troxel <gdt@ir.bbn.com>
To: Junio C Hamano <gitster@pobox.com>
Cc: John Keeping <john@keeping.me.uk>, git@vger.kernel.org
Subject: Re: What's cooking in git.git (Apr 2014, #09; Tue, 29)
Date: Wed, 07 May 2014 07:44:34 -0400	[thread overview]
Message-ID: <rmiha51dd99.fsf@fnord.ir.bbn.com> (raw)
In-Reply-To: <xmqqoazb944d.fsf@gitster.dls.corp.google.com> (Junio C. Hamano's message of "Mon, 05 May 2014 16:50:58 -0700")

[-- Attachment #1: Type: text/plain, Size: 2006 bytes --]


Junio C Hamano <gitster@pobox.com> writes:

> You raised a good point on the issue of external dependencies may
> impact Git as a whole, even for those who are not interested in the
> particular remote helpers at all.  I'll have to think about it.

(As I'm sure you know, but starting from the beginning.)  There are
basically two ways that a program can be built.  One is by a user on a
particular system.  There, checking to see if various libraries are
installed and if so enabling some additional feature (that isn't that
hard/time-consuming to build) is entirely reasonable.

In a packaging system, dependencies are much more troublesome.
Dependencies have to be declared, and the build limited to use only
those declared dependencies, in order to get repeatable builds and
binary packages that can be used on other systems.  Dependencies that
really are required are fine.  But optional dependencies are a problem,
because e.g. one doesn't want to require the presence of qt to build
something (that isn't already enormous).   So if git needs mercurial and
subversion installed, plus perhaps 5 other things for less popular
remote helpers, that starts to be a real burden.

(I realize some packaging systems have a style where the union of the
possible dependencies must be present to build, and then the resulting
binaries are allocated to split packages.  But that's not universal, and
it still requires large amounts of unnecessary dependencies to build a
package from source.)

Ideally, the core of git would have a small set of dependencies, and
optional language bindings or remote helpers could be built
independently (by running a different build, after git proper was built
and installed).  It seems more likely that the property of independent
builds of optional components will be preserved if the various git-foo
pieces are in seaprate trees.  But if they are in subdirs of the main
git tree, and build by "./configure && make && make install" in the
subdir, that's arguably equivalent.

[-- Attachment #2: Type: application/pgp-signature, Size: 180 bytes --]

  parent reply	other threads:[~2014-05-07 11:50 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-04-29 22:38 What's cooking in git.git (Apr 2014, #09; Tue, 29) Junio C Hamano
2014-05-05 18:45 ` John Keeping
2014-05-05 19:08   ` Felipe Contreras
2014-05-05 19:55     ` John Keeping
2014-05-05 20:34       ` Felipe Contreras
2014-05-05 21:43         ` Felipe Contreras
2014-05-06 17:59       ` Junio C Hamano
2014-05-06 18:54         ` Felipe Contreras
2014-05-05 23:50   ` Junio C Hamano
2014-05-06  0:20     ` Felipe Contreras
2014-05-06  0:39       ` Felipe Contreras
2014-05-06  8:07     ` John Keeping
2014-05-06  8:32       ` Felipe Contreras
2014-05-06 19:34       ` Junio C Hamano
2014-05-06 19:39         ` Felipe Contreras
2014-05-07 11:44     ` Greg Troxel [this message]
2014-05-07 19:54       ` Felipe Contreras
2014-05-07 23:38         ` Greg Troxel
2014-05-08  0:18           ` Felipe Contreras
2014-05-08  7:29     ` Chris Packham
2014-05-08  7:56       ` Felipe Contreras
2014-05-09  0:40         ` David Lang
2014-05-09  0:58           ` Felipe Contreras
2014-05-09  0:58           ` Submodule improvements (Re: What's cooking in git.git (Apr 2014, #09; Tue, 29)) Jonathan Nieder
2014-05-08 18:31       ` What's cooking in git.git (Apr 2014, #09; Tue, 29) Junio C Hamano
2014-05-07  0:01   ` Junio C Hamano
2014-05-07  0:17     ` Felipe Contreras
2014-05-07  8:05     ` John Keeping
2014-05-07  9:26       ` Felipe Contreras
2014-05-07 18:56       ` Junio C Hamano
2014-05-07 19:28         ` John Keeping
2014-05-07 19:50           ` Felipe Contreras
2014-05-07 20:26         ` Felipe Contreras
2014-05-07 20:44           ` John Keeping
2014-05-07 21:38             ` Felipe Contreras

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=rmiha51dd99.fsf@fnord.ir.bbn.com \
    --to=gdt@ir.bbn.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=john@keeping.me.uk \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).