[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: The "node" command in Debian



On Mon, 07 Feb 2011, Jonathan Nieder wrote:
> As you may know[0], there are currently two packages in Debian
> experimental providing a "node" binary.
> 
> [0] http://lists.debian.org/debian-devel/2010/08/msg00568.html

...

> One is from the node.js project.  It was renamed from "server" to
> "node" on March 3, 2009.  The purpose of this tool is to run servers

So, this one has a past history of hazardous, poor thought-out behavior
re. the global namespace... and it blew its second chance when it went
from "server" (insanely bad choice) to "node" (another insanely bad
choice, for _exactly the same reasons_).

> The LinuxNode project
> ---------------------
> The other is a frontend to libax25, an AX.25 implementation for Linux.
> Hardware implementations of AX.25 are apparently called "terminal node
> controllers" or "nodes" for short; hence this Linux-based
> implementation was called LinuxNode and its binary called "node".  It
> was introduced in January, 1996.  It seems that its family tree also
> includes (unpackaged) implementations named AWZNode and FlexNode.

1996 was a long time ago, the world was much smaller back then.  It was
still a very very poor choice of naming, and it should have been named
ax25node from day one.

> | As a continuous very long term (about 1994) user of kernel ax25 I
> | object strongly to this request which will affect far more users
> | world-wide than just a few nodejs users.
> 
> [2] http://lists.debian.org/debian-hams/2010/08/msg00032.html

You go for generic names in the common namespace, you set yourself up
for disaster, and you get what you deserve.

However, Debian has a lot of penetration in the HAM community, "node"
has preferred usage for networking matters in any Unix-like system due
to more than 20 years of tradition, and they have a previous claim for
the name.  Poorly named as it is, that package has been in Debian stable
releases since 1999.

If push comes to shove, nobody is going to try to force _them_ to give
up that name.  You can get the package itself renamed to ax25node, and
have the required "node" transitional package in squeeze+1, so as to
have no "node" package in squeeze+2, but rename the executable itself?
not likely.

> Problem: scripts may use the 'node' name to refer to either of these
> programs.  Which should get the name?  You decide, based not on
> popularity or priority but --- well, based on whatever makes sense.

The nasty thing is that whatever answers to "node" is defined by path
precedence, and often sbin is only included for root, so it is a large
pitfall.

> If no consensus emerges, policy §10.1 in its Solomon-like wisdom says
> _both_ commands must be renamed.  I hope we can do better.  I will be
> happy to file release-critical bugs against both packages to that
> effect if not.

1. they can declare a conflict with each other, so that the packaging
   system will never let both get installed in the same system.

   Unless both communities have a large overlap, this one makes both
   happy, until a third package shows up trying to claim "node".

2. they can be forced (by the TC) to drop their claim of "node" in the
   common namespace.  This is not likely to happen.

3. It is possible that they could do nothing, since there is no direct
   file conflict (different paths).  Not good for the unaware user that
   installs both, but I am not sure whether we forbid this kind of
   potential pitfall in the first place.

4. as the one with the weaker claim, node.js can move its executable out
   of the generic namespace or rename its executable to something else.

-- 
  "One disk to rule them all, One disk to find them. One disk to bring
  them all and in the darkness grind them. In the Land of Redmond
  where the shadows lie." -- The Silicon Valley Tarot
  Henrique Holschuh


Reply to: