Removing git dependencies on perl5 and python27

Mahmoud Al-Qudsi mqudsi at neosmart.net
Fri Jun 15 02:16:12 UTC 2018


Hello list,

I'm probably not alone in considering git to be a core development tool,
perhaps just a notch or two below the C compiler. `git` and `sudo` are the two
packages I first install (after `pkg` itself) on any machine, and in many
cases that suffices to get a basic development environment going.

However, the git package currently brings in a host of unwanted dependencies,
and I *believe* they can be done without.

This is the complete dependency graph for the git package [0] (generated with
the newly-minted pkg-graph [1]). It pulls in perl5 and python27, both sizeable
packages and both not required to use git.

While git can be compiled without some of the additional dependencies such as
expat or pcre, this results in a "crippled" git lacking in some core features,
and requires special build-time definitions like NO_EXPAT or NO_PCRE passed to
the git Makefile. The other dependencies like curl, pcre, and gettext are also
relatively small and typically part of even the most minimal system, but perl5
and python27 are full-blown runtimes for interpreted languages that have
fallen out of favor and have been successfully stripped from FreeBSD core (and
even many Linux distributions).

I'm sure these packages are not just there to have a good time and they serve
some purpose and enable a subset of the git functionality, but my question
here today is whether that functionality is worth its weight in dependencies,
and whether the ports team is open to seeing the git package stripped of these
dependencies.

(Obviously the option of adding a "git-lite" package à la "vim-lite" also
exists, but I think it's fair to say that would be an ugly and unnecessary
compromise.)

[0]: https://goo.gl/hozu1b
[1]: https://github.com/neosmart/pkg-graph

Many thanks,

Mahmoud Al-Qudsi
NeoSmart Technologies


More information about the freebsd-ports mailing list