gnustandards-commit
[Top][All Lists]
Advanced

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

gnustandards standards.texi


From: Richard M. Stallman
Subject: gnustandards standards.texi
Date: Fri, 9 Aug 2019 19:13:53 -0400 (EDT)

CVSROOT:        /sources/gnustandards
Module name:    gnustandards
Changes by:     Richard M. Stallman <rms>       19/08/09 19:13:52

Modified files:
        .              : standards.texi 

Log message:
        Clarifications.
        (References) Address variou sadditional cases.  The Java libraries
        problem is now in the past.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnustandards/standards.texi?cvsroot=gnustandards&r1=1.260&r2=1.261

Patches:
Index: standards.texi
===================================================================
RCS file: /sources/gnustandards/gnustandards/standards.texi,v
retrieving revision 1.260
retrieving revision 1.261
diff -u -b -r1.260 -r1.261
--- standards.texi      28 Apr 2019 06:06:58 -0000      1.260
+++ standards.texi      9 Aug 2019 23:13:52 -0000       1.261
@@ -3,7 +3,7 @@
 @setfilename standards.info
 @settitle GNU Coding Standards
 @c This date is automagically updated when you save this file:
-@set lastupdate April 28, 2019
+@set lastupdate August 9, 2019
 @c %**end of header
 
 @dircategory GNU organization
@@ -815,13 +815,16 @@
 
 @cindex program name and its behavior
 @cindex behavior, dependent on program's name
-Please don't make the behavior of a utility depend on the name used
-to invoke it.  It is useful sometimes to make a link to a utility
-with a different name, and that should not change what it does.
+Please don't make the behavior of a utility depend on the name used to
+invoke it.  It is useful sometimes to make a link to a utility with a
+different name, and that should not change what it does.  Thus, if you
+make @file{foo} a link to @file{ls}, the program should behave the
+same regardless of which of those names is used to invoke it.
 
 Instead, use a run time option or a compilation switch or both to
 select among the alternate behaviors.  You can also build two versions
-of the program, with different names and different default behaviors.
+of the program, with different default behaviors, and install them
+under two different names.
 
 @cindex output device and program's behavior
 Likewise, please don't make the behavior of a command-line program
@@ -4201,7 +4204,7 @@
 can't stop some people from writing proprietary programs, or stop
 other people from using them, but we can and should refuse to
 advertise them to new potential customers, or to give the public the
-idea that their existence is ethical.
+impression that their existence is legitimate.
 
 The GNU definition of free software is found on the GNU web site at
 @url{https://www.gnu.org/@/philosophy/@/free-sw.html}, and the definition
@@ -4220,7 +4223,8 @@
 probably already know about it.  For instance, it is fine to explain
 how to build your package on top of some widely used non-free
 operating system, or how to use it together with some widely used
-non-free program.
+non-free program, after first explaining how to use it on the GNU
+system.
 
 However, you should give only the necessary information to help those
 who already use the non-free program to use your program with
@@ -4233,6 +4237,11 @@
 program will not see anything likely to lead them to take an interest
 in it.
 
+You shouldn't recommend any non-free add-ons for the non-free program,
+but it is ok to mention free add-ons that help it to work with your
+program, and how to install the free add-ons even if that requires
+running some non-free program.
+
 If a non-free program or system is obscure in your program's domain,
 your program should not mention or support it at all, since doing so
 would tend to popularize the non-free program more than it popularizes
@@ -4241,17 +4250,18 @@
 generally known among people who might want to use your program.)
 
 Sometimes a program is free software in itself but depends on a
-non-free platform in order to run.  For instance, many Java programs
-depend on some non-free Java libraries.  To recommend or promote such
-a program is to promote the other programs it needs.  This is why we
-are careful about listing Java programs in the Free Software
-Directory: we don't want to promote the non-free Java libraries.
-
-We hope this particular problem with Java will be gone by and by, as
-we replace the remaining non-free standard Java libraries with free
-software, but the general principle will remain the same: don't
-recommend, promote or legitimize programs that depend on non-free
-software to run.
+non-free platform in order to run.  For instance, it used to be the
+case that many Java programs depended on some non-free Java libraries.
+(See @uref{https://www.gnu.org/philosophy/java-trap.html}.)
+To recommend or promote such a program is to promote the other
+programs it needs; therefore, judge mentions of the former as if they
+were mentions of the latter.  For this reason, we were careful about
+listing Java programs in the Free Software Directory: we wanted to
+avoid promoting the non-free Java libraries.
+
+Java no longer has this problem, but the general principle will remain
+the same: don't recommend, promote or legitimize programs that depend
+on non-free software to run.
 
 Some free programs strongly encourage the use of non-free software.  A
 typical example is @command{mplayer}.  It is free software in itself,
@@ -4285,25 +4295,25 @@
 mention by name) web sites that contain such material.  This policy is
 relevant particularly for the web pages for a GNU package.
 
-Following links from nearly any web site can lead eventually to
-non-free software; this is inherent in the nature of the web.  So it
-makes no sense to criticize a site for having such links.  As long as
-the site does not itself recommend a non-free program, there is no
-need to consider the question of the sites that it links to for other
-reasons.
-
-Thus, for example, you should not refer to AT&T's web site if that
-recommends AT&T's non-free software packages; you should not refer to
-a page @var{p} that links to AT&T's site presenting it as a place to get
-some non-free program, because that part of the page @var{p} itself
-recommends and legitimizes the non-free program.  However, that @var{p}
-contains a link to AT&T's web site for some other purpose (such as
-long-distance telephone service) is not an objection against it.
-
-A web page recommends a program in a particularly strong way if it
-requires users to run that program in order to use the page.  Many
-pages contain Javascript code which they recommend in this way.  This
-Javascript code may be free or nonfree, but nonfree is the usual case.
+What about chains of links?  Following links from nearly any web site
+can lead eventually to promotion of non-free software; this is
+inherent in the nature of the web.  Here's how we treat that.
+
+You should not refer to AT&T's web site if that recommends AT&T's
+non-free software packages; you should not refer to a page @var{p}
+that links to AT&T's site presenting it as a place to get some
+non-free program, because that part of the page @var{p} itself
+recommends and legitimizes the non-free program.
+
+However, if @var{p} contains a link to AT&T's web site for some other
+purpose (such as long-distance telephone service), that is no reason
+you should not link to @var{p}.
+
+A web page recommends a program in an implicit but particularly strong
+way if it requires users to run that program in order to use the page.
+Many pages contain Javascript code which they recommend in this way.
+This Javascript code may be free or nonfree, but nonfree is the usual
+case.
 
 If the purpose for which you would refer to the page cannot be carried
 out without running nonfree Javascript code, then you should not refer



reply via email to

[Prev in Thread] Current Thread [Next in Thread]