gnustandards-commit
[Top][All Lists]
Advanced

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

gnustandards ChangeLog make-stds.texi standards...


From: Karl Berry
Subject: gnustandards ChangeLog make-stds.texi standards...
Date: Wed, 25 Aug 2010 00:07:22 +0000

CVSROOT:        /sources/gnustandards
Module name:    gnustandards
Changes by:     Karl Berry <karl>       10/08/25 00:07:22

Modified files:
        .              : ChangeLog make-stds.texi standards.texi 
        work.s         : GNUmakefile 

Log message:
        new node for dynamic plug-in interface standards

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnustandards/ChangeLog?cvsroot=gnustandards&r1=1.120&r2=1.121
http://cvs.savannah.gnu.org/viewcvs/gnustandards/make-stds.texi?cvsroot=gnustandards&r1=1.60&r2=1.61
http://cvs.savannah.gnu.org/viewcvs/gnustandards/standards.texi?cvsroot=gnustandards&r1=1.198&r2=1.199
http://cvs.savannah.gnu.org/viewcvs/gnustandards/work.s/GNUmakefile?cvsroot=gnustandards&r1=1.8&r2=1.9

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnustandards/gnustandards/ChangeLog,v
retrieving revision 1.120
retrieving revision 1.121
diff -u -b -r1.120 -r1.121
--- ChangeLog   2 Jul 2010 22:43:21 -0000       1.120
+++ ChangeLog   25 Aug 2010 00:07:21 -0000      1.121
@@ -1,3 +1,12 @@
+2010-08-24  Karl Berry  <address@hidden>
+
+       * make-stds.texi (Standard Targets): parenthetical instead of
+       footnote, for ease of reading.
+
+2010-08-24  Richard Stallman  <address@hidden>
+
+       * standards.texi (Dynamic Plug-In Interfaces): new node.
+
 2010-07-02  Karl Berry  <address@hidden>
 
        * gnu-oids.texi (.8): for GNU Dico, request from Sergey Poznyakoff.

Index: make-stds.texi
===================================================================
RCS file: /sources/gnustandards/gnustandards/make-stds.texi,v
retrieving revision 1.60
retrieving revision 1.61
diff -u -b -r1.60 -r1.61
--- make-stds.texi      9 Jun 2010 15:25:14 -0000       1.60
+++ make-stds.texi      25 Aug 2010 00:07:21 -0000      1.61
@@ -943,11 +943,12 @@
 @end smallexample
 
 @noindent
-You must define the variable @code{TEXI2DVI} in the Makefile.  It should
-run the program @code{texi2dvi}, which is part of the Texinfo
address@hidden@code{texi2dvi} uses @TeX{} to do the real work
-of formatting. @TeX{} is not distributed with Texinfo.}  Alternatively,
-write just the dependencies, and allow GNU @code{make} to provide the command.
+You must define the variable @code{TEXI2DVI} in the Makefile.  It
+should run the program @code{texi2dvi}, which is part of the Texinfo
+distribution.  (@code{texi2dvi} uses @TeX{} to do the real work of
+formatting. @TeX{} is not distributed with Texinfo.)  Alternatively,
+write only the dependencies, and allow GNU @code{make} to provide the
+command.
 
 Here's another example, this one for generating HTML from Texinfo:
 

Index: standards.texi
===================================================================
RCS file: /sources/gnustandards/gnustandards/standards.texi,v
retrieving revision 1.198
retrieving revision 1.199
diff -u -b -r1.198 -r1.199
--- standards.texi      22 Jun 2010 16:32:29 -0000      1.198
+++ standards.texi      25 Aug 2010 00:07:21 -0000      1.199
@@ -3,7 +3,7 @@
 @setfilename standards.info
 @settitle GNU Coding Standards
 @c This date is automagically updated when you save this file:
address@hidden lastupdate June 21, 2010
address@hidden lastupdate August 24, 2010
 @c %**end of header
 
 @dircategory GNU organization
@@ -543,6 +543,7 @@
 * User Interfaces::             Standards about interfaces generally.
 * Graphical Interfaces::        Standards for graphical interfaces.
 * Command-Line Interfaces::     Standards for command line interfaces.
+* Dynamic Plug-In Interfaces::  Standards for dynamic plug-in interfaces.
 * Option Table::                Table of long options.
 * OID Allocations::             Table of OID slots for GNU.
 * Memory Usage::                When and how to care about memory needs.
@@ -1122,6 +1123,44 @@
 It is ok to mention other appropriate mailing lists and web pages.
 
 
address@hidden Dynamic Plug-In Interfaces
address@hidden Standards for Dynamic Plug-in Interfaces
address@hidden plug-ins
address@hidden dynamic plug-ins
+
+Another aspect of keeping free programs free is encouraging
+development of free plug-ins, and discouraging development of
+proprietary plug-ins.  Many GNU programs will not have anything like
+plug-ins at all, but those that do should follow these
+practices.
+
+First, the general plug-in architecture design should closely tie the
+plug-in to the original code, such that the plug-in and the base
+program are parts of one extended program.  For GCC, for example,
+plug-ins receive and modify GCC's internal data structures, and so
+clearly form an extended program with the base GCC.
+
address@hidden plugin_is_GPL_compatible
+Second, you should require plug-in developers to affirm that their
+plug-ins are released under an appropriate license.  This should be
+enforced with a simple programmatic check.  For GCC, again for
+example, a plug-in must define the global symbol
address@hidden, thus asserting that the plug-in is
+released under a GPL-compatible license (@pxref{Plugins,, Plugins,
+gccint, GCC Internals}).
+
+By adding this check to your program you are not creating a new legal
+requirement.  The GPL itself requires plug-ins to be free software,
+licensed compatibly.  As long as you have followed the first rule above
+to keep plug-ins closely tied to your original program, the GPL and AGPL
+already require those plug-ins to be released under a compatible
+license.  The symbol definition in the plug-in---or whatever equivalent
+works best in your program---makes it harder for anyone who might
+distribute proprietary plug-ins to legally defend themselves.  If a case
+about this got to court, we can point to that symbol as evidence that
+the plug-in developer understood that the license had this requirement.
+
+
 @node Option Table
 @section Table of Long Options
 @cindex long option names

Index: work.s/GNUmakefile
===================================================================
RCS file: /sources/gnustandards/gnustandards/work.s/GNUmakefile,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- work.s/GNUmakefile  2 May 2010 00:29:51 -0000       1.8
+++ work.s/GNUmakefile  25 Aug 2010 00:07:21 -0000      1.9
@@ -1,4 +1,4 @@
-# $Id: GNUmakefile,v 1.8 2010/05/02 00:29:51 karl Exp $
+# $Id: GNUmakefile,v 1.9 2010/08/25 00:07:21 karl Exp $
 # Copyright 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
 #
 # Copying and distribution of this file, with or without modification,
@@ -20,35 +20,14 @@
 b:
        gendocs.sh standards "GNU coding standards"
 
-# fix cross-manual xrefs.
-# be nice to do this more cleanly later, but needs Texinfo config file, etc.
 c:
-#
-# new-style gendocs.sh, but special location.
-       perl -pi -e 's,href="(maintain).html,href="/prep/\1/\1.html,g' 
manual/standards.html 
-       perl -pi -e 's,href="\.\./(maintain)/,href="/prep/\1/html_node/,g' 
manual/html_node/*.html
-#
-# new-style gendocs.sh
-       perl -pi -e 
's,href="texinfo.html,href="/software/texinfo/manual/texinfo/texinfo.html,g' 
manual/*.html
-       perl -pi -e 
's,href="\.\./texinfo/,href="/software/texinfo/manual/texinfo/html_node/,g' 
manual/html_node/*.html
-#
-       perl -pi -e 
's,href="autoconf.html,href="/software/autoconf/manual/autoconf.html,g' 
manual/*.html
-       perl -pi -e 
's,href="\.\./autoconf/,href="/software/autoconf/manual/html_node/,g' 
manual/html_node/*.html
-#
-       perl -pi -e 
's,href="automake.html,href="/software/automake/manual/automake.html,g' 
manual/*.html
-       perl -pi -e 
's,href="\.\./automake/,href="/software/automake/manual/html_node/,g' 
manual/html_node/*.html
-#
-# makeinfo bug in toc creation of standalone html (for --version/help nodes).
-       perl -pi -e 's,#_00,#g_t_00,' manual/standards.html
-#
-       gzip -9f <manual/standards.html >manual/standards.html.gz
-       cd manual/html_node && tar czf ../standards.html_node.tar.gz -- *.html
-#
-       (cd manual && tar cjf ../s.tbz .)
+       cd manual && tar cjf ../s.tbz .
 # then unpack s.tbz in a cvs checkout of www/prep/standards, cvs add any
 # new files, cvs remove any old ones, and cvs commit everything.
-#
-# to copy to a local checkout ($gw).
-#      cd manual && for f in `find -type f`; do \
-#        cmp -s $$f $$gw/prep/standards/$$f \
-#        || \cp -f $$f $$gw/prep/standards/$$f -v; done
+# or:
+
+d:
+# copy to a local checkout of all of www ($gw):
+       cd manual && for f in `find -type f`; do \
+            cmp -s $$f $$gw/prep/standards/$$f \
+         || \cp -f $$f $$gw/prep/standards/$$f -v; done



reply via email to

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