Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 14 Mar 2012 22:14:28 +0000
From:      Jonathan Anderson <jonathan.anderson@cl.cam.ac.uk>
To:        Adrian Chadd <adrian@freebsd.org>
Cc:        freebsd-current@freebsd.org, Gabor Kovesdan <gabor@freebsd.org>, freebsd-ports@freebsd.org, Oleg Moskalenko <oleg.moskalenko@citrix.com>
Subject:   Re: CFT: new BSD-licensed sort available
Message-ID:  <ACA5E377-BFF9-4C1D-8499-A8003FFE79B3@cl.cam.ac.uk>
In-Reply-To: <CAJ-VmokUV8t3W4CueZuiZC7e=FuVtFu1jq54V_NpRc79-3QG=w@mail.gmail.com>
References:  <4F60C059.7060904@FreeBSD.org> <CAJ-VmokUV8t3W4CueZuiZC7e=FuVtFu1jq54V_NpRc79-3QG=w@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On 14 Mar 2012, at 21:10, Adrian Chadd wrote:
> Hi,
>=20
> This makes me think of the whole debian-y way of replacing the mailer
> programs using some magic alias program.
>=20
> So you could intall gnusort, bsdsort, and then some config file would
> determine which was used.
>=20
> 'sort' would then be a symlink to said magic program, that'd look at
> its argv[0], look at the contents of that file, and exec() the right
> one.

In fact, the runtime behaviour of the Debian "alternatives" system is =
simpler than that:
http://segfault.in/2010/04/using-the-debian-alternatives-system/

The custom Perl script with a config file is used to set up symlinks, =
which at runtime are... well, just symlinks. For instance, /usr/bin/vim =
is a symlink to /etc/alternatives/vim, which is itself a symlink to a =
binary like vim.gtk (example shamelessly stolen from the linked page, =
since I no longer have any Debian boxes to check for myself on :). No =
magic binaries or argv[0] fu.

In one way, it's an elegant solution. On the other, it's a classic =
example of Wheeler's Law in action. :)


Jon
--
Jonathan Anderson

Research Student, Security Group
Computer Laboratory
University of Cambridge

+44 (1223) 763747
jonathan.anderson@cl.cam.ac.uk=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?ACA5E377-BFF9-4C1D-8499-A8003FFE79B3>