9.2 Interoperation with Nonfree Applications
It is quite usual to implement features in GNU programs to make them
work conveniently with widely used nonfree tools and applications.
But there are situations where you should not implement cooperation
with a nonfree program, which we can refer to here as ShackleMe.
- If ShackleMe is not well-known, reject the idea. GNU packages should
not even mention an obscure nonfree program
(see References in GNU Coding Standards).
- If ShackleMe imposes something particularly nasty or dangerous, such
as effective DRM or monopolistic file formats, you should refuse to
give it any specific support. But don’t cripple general features so
that they refuse to work with ShackleMe; that would be excessive. It
is ok to write code to extract the user’s data from such files, if
that is possible.
- If ShackleMe does not run on the GNU operating system, and there is no
comparable free program that people could use on the GNU system to do
the same job, special support for ShackleMe would be a feature that
works on non-GNU systems only. Thus, you should refuse to support it.
See Non-GNU-only Features.
- If ShackleMe runs on GNU systems also, you can include support for it
if you wish, but you don’t have an obligation to include that, let
alone ever to run it. If you do include support for it, make
sure the support for communicating with it works as well on the GNU
system as it does on non-GNU systems.
- If there are free programs that can replace ShackleMe, or try to, make
sure your program works with them as well as it is reported to work
with ShackleMe, or better.
- You never have an obligation to write, install or maintain any sort of
support for a nonfree program. If it is unmaintained and breaks, and
nobody else wants to maintain it you can delete it. Don’t feel
trapped into working on it!
See Suggested Responses, for text you can use, if you wish, to
state your refusal to support ShackleMe without equally good support
for ShackleMe’s free competitors. Its purpose is to invite the
contributors to support those. You can modify it as needed to fit the
situation.