[Top][All Lists]
[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- gnustandards ChangeLog make-stds.texi standards...,
Karl Berry <=