[Pkg-tcltk-commits] r354 - in tcltk-defaults/trunk: . debian

sgolovan-guest at alioth.debian.org sgolovan-guest at alioth.debian.org
Sun Oct 21 10:39:45 UTC 2007


Author: sgolovan-guest
Date: 2007-10-21 10:39:45 +0000 (Sun, 21 Oct 2007)
New Revision: 354

Modified:
   tcltk-defaults/trunk/debian/rules
   tcltk-defaults/trunk/tcltk-policy.sgml
Log:
[tcltk-defaults]
Updated policy to 0.2.0


Modified: tcltk-defaults/trunk/debian/rules
===================================================================
--- tcltk-defaults/trunk/debian/rules	2007-10-21 10:37:51 UTC (rev 353)
+++ tcltk-defaults/trunk/debian/rules	2007-10-21 10:39:45 UTC (rev 354)
@@ -15,7 +15,7 @@
 #
 # A new policy should be get manually and only after agreement
 #
-POLICY = 0.1.0
+POLICY = 0.2.0
 get-policy:
 	svn export svn://svn.debian.org/svn/pkg-tcltk/policy/tags/$(POLICY)/tcltk-policy.sgml
 

Modified: tcltk-defaults/trunk/tcltk-policy.sgml
===================================================================
--- tcltk-defaults/trunk/tcltk-policy.sgml	2007-10-21 10:37:51 UTC (rev 353)
+++ tcltk-defaults/trunk/tcltk-policy.sgml	2007-10-21 10:39:45 UTC (rev 354)
@@ -1,15 +1,33 @@
-<!doctype debiandoc system>
+<!DOCTYPE debiandoc system [
+<!ENTITY XY        "<var>X</var>.<var>Y</var>">
+<!ENTITY tclsh     "<package>tclsh</package>">
+<!ENTITY wish      "<package>wish</package>">
+<!ENTITY tcl       "<package>tcl</package>">
+<!ENTITY tcl-dev   "<package>tcl-dev</package>">
+<!ENTITY tcl-doc   "<package>tcl-doc</package>">
+<!ENTITY tclXY     "<package>tcl&XY;</package>">
+<!ENTITY tclXY-dev "<package>tcl&XY;-dev</package>">
+<!ENTITY tclXY-doc "<package>tcl&XY;-doc</package>">
+<!ENTITY tk        "<package>tk</package>">
+<!ENTITY tk-dev    "<package>tk-dev</package>">
+<!ENTITY tk-doc    "<package>tk-doc</package>">
+<!ENTITY tkXY      "<package>tk&XY;</package>">
+<!ENTITY tkXY-dev  "<package>tk&XY;-dev</package>">
+<!ENTITY tkXY-doc  "<package>tk&XY;-doc</package>">
+]>
 <debiandoc>
  <book>
   <titlepag>
     <title>Debian Tcl/Tk Policy</title>
     <author>
-	<name>Fracesco Paolo Lovergine</name>
+	<name>Francesco Paolo Lovergine</name>
+	<email>frankie at debian.org</email>
     </author>
     <author>
 	<name>Sergei Golovan</name>
+	<email>sgolovan at debian.org</email>
     </author>
-    <version>version 0.1.0</version>
+    <version>version 0.2.0</version>
 
     <abstract>
       This document describes the packaging of Tcl/Tk within the Debian
@@ -17,8 +35,6 @@
       and packages. This policy has been defined during Lenny release
       cycle, so pre-Lenny releases can violate this policy in one or 
       more aspects. Backporters are warned.
-
-      THIS IS A DRAFT DOCUMENT, NOT AN OFFICIAL POLICY.
     </abstract>
 
     <copyright>
@@ -59,34 +75,36 @@
       <sect id="versions">
 	<heading>Versions</heading>
 	<p>
-	  At any given time, the virtual packages <package>tclsh</package> and
-	  <package>wish</package> are provided by different source package versions 
+	  At any given time, the virtual packages &tclsh; and
+	  &wish; are provided by all source package versions 
 	  of Tcl and Tk. So pseudo-default Tcl and Tk exist, but they are generally a choice
 	  of the administrator by means of <tt>update-alternatives</tt> use.
-	  Starting from Lenny release, proper default packages are also provided,
-	  in order to manage better modules and extensions packaging. 
+	  Starting from Lenny release, proper default packages are also provided by
+	  the Debian <file>tcltk-defaults</file> source package,
+	  in order to manage modules and extensions packaging and upgrading better.
 	  Modules should preferably use those packages when appropriate 
 	  (i.e. they are either version independent
-	  or properly versioned to inhibit the use of a non compatible versions), but it is
+	  or properly versioned to inhibit the use of a non compatible versions, 
+	  see <ref id="dependencies">), but it is
 	  not mandatory. This is consistent with the use of alternatives.
 	  The default packages are
 	  <example>
-	  tcl
-	  tk
-	  tcl-dev
-	  tk-dev
-	  tcl-doc
-	  tk-doc
+	tcl
+	tk
+	tcl-dev
+	tk-dev
+	tcl-doc
+	tk-doc
 	  </example>
 	</p>
 	<p>
-	  The default Debian Tcl/Tk version should alway be the latest stable
+	  The default Debian Tcl/Tk version should always be the latest stable
 	  upstream release that can be integrated in the distribution. Starting
 	  from 8.0, Tcl and Tk share the same version numbering. The default packages
-	  must depend on the right versioned packages and provide useful additional
-	  symlinks and alternatives. At some point in the development cycle 
-	  after Lenny release, virtual packages could be dropped and all packages
-	  have to only depend on default packages or versioned ones.
+	  depend on the appropriate versioned packages and provide useful additional
+	  symlinks and alternatives. Default packages versions follow upstream versions,
+	  so that packages can use appropriate versioning constraints on them when
+	  it is needed.
 	</p>
 	<p>
 	  Apart from the default version, legacy versions of Tcl/Tk
@@ -98,61 +116,54 @@
 	  the same Tcl/Tk version 8.4, but Tcl 8.5 and 8.3 are
 	  indeed different versions. The patchlevel intends the result of 
 	  the 'info patchlevel' command, i.e. Tcl/Tk 8.4.16 and 8.4.15 have the
-	  same version but different patchlevels)
+	  same version but different patchlevels).
 	</p>
         <p>In addition, unstable/development version of Tcl/Tk
           may be included in the unstable/experimental distribution.
         </p>
 	<p>
-	  For any version, the main Tcl and Tk packages must be called
-	  <package>tcl<var>X</var>.<var>Y</var></package> and
-	  <package>tk<var>X</var>.<var>Y</var></package> respectively. 
+	  For any version, the main Tcl and Tk packages are called
+	  &tclXY; and &tkXY; respectively. 
 	  They are always packaged as separate sources, as for upstream.
 	  Names of related packages or extensions must follow the same
-	  convention, if the inclusion of multiple versions make sense
-	  and/or it they work only with specific versions of Tcl or Tk.
+	  convention if the inclusion of multiple versions make sense
+	  or if they work only with specific versions of Tcl or Tk.
 	</p>
 	<p>
 	  To avoid definition clashes with Debian terminology, we will call 
-	  <var>modules</var> any Tcl/Tk packages which consist uniquely of 
-	  Tcl/Tk sources, and <var>extension</var> any program which
+	  <em>modules</em> any Tcl/Tk packages which consist uniquely of 
+	  Tcl/Tk sources, and <em>extension</em> any program which
 	  extends consistently Tcl/Tk using TEA and shared libraries.
 	  Note that this is not completely consistent with Tcl terminology, 
-	  which recently also introduced <em>.tm modules</em> and traditionally 
-	  deals with <em>packages</em> and <em>script libraries</em>.
+	  which started from version 8.5 also introduces <em>.tm modules</em>
+	  and traditionally deals with <em>packages</em> and <em>script
+	  libraries</em>.
 	</p>
-
       </sect>
 
       <sect id="base">
 	<heading>Main packages</heading>
 	<p>
 	  For every Tcl/Tk versions provided in the distribution, the
-	  packages <package>tcl<var>X</var>.<var>Y</var></package>
-          and <package>tk<var>X</var>.<var>Y</var></package>
-	  shall comprise a complete distribution for
+	  packages &tclXY;
+          and &tkXY;
+	  comprise a complete distribution for
 	  <em>deployment</em> of Tcl/Tk scripts and applications. The
 	  packages include the binaries
-	  <file>/usr/bin/tclsh<var>X</var>.<var>Y</var></file>,
-	  <file>/usr/bin/wish<var>X</var>.<var>Y</var></file> and
+	  <file>/usr/bin/tclsh&XY;</file>,
+	  <file>/usr/bin/wish&XY;</file> and
 	  core modules and extensions of the upstream Tcl/Tk distribution. 
-	  Any Tcl packages will include a <var>Provides:</var> item of the virtual package 
-	  <package>tclsh</package> and any Tk packages will include a <var>Provides:</var> 
-	  item for the <package>wish</package> virtual package. Those virtual packages
-	  could be dropped any time after Lenny release.
-	  They will also provide alternatives for the following files: 
-	  <package>/usr/bin/tclsh</package>
-	  <package>/usr/bin/wish</package>
-	  <package>/usr/share/aclocal/tcl.m4</package>
+	  Any Tcl package includes a <var>Provides:</var> item of the virtual package 
+	  &tclsh; and any Tk package includes a <var>Provides:</var> 
+	  item for the &wish; virtual package.
+	  They also provide alternatives for files
+	  <file>/usr/bin/tclsh</file> and
+	  <file>/usr/bin/wish</file>.
 	</p>
 	<p>
-	  Any modules or extensions that depend on non-<em>required</em> packages 
-	  are excluded and will be provided in separate packages. Tools and files 
-	  for the <em>development</em> of Tcl/Tk packages are split off in two
-	  separate packages
-	  <package>tcl<var>X</var>.<var>Y</var>-dev</package> and
-	  <package>tk<var>X</var>.<var>Y</var>-dev</package>.
-	  Documentation will be provided separately as well.
+	  Tools and files for the <em>development</em> of Tcl/Tk packages are split off in two
+	  separate packages &tclXY-dev; and &tkXY-dev;.
+	  Documentation is provided separately in packages &tclXY-doc; and &tkXY-doc;.
 	</p>
       </sect>
 
@@ -169,9 +180,8 @@
           <p>
 	    Tcl/Tk scripts that only work with a specific Tcl/Tk version must
 	    explicitely use the versioned interpreter name
-	    (<file>tclsh<var>X</var>.<var>Y</var></file> and/or <file>wish<var>X</var>.<var>Y</var></file>)
-	    and either depend on the specific Tcl/Tk versioned package or add versioning to their
-	    dependencies on the default Tcl/Tk packages.
+	    (<file>tclsh&XY;</file> and/or <file>wish&XY;</file>)
+	    and must depend on the specific Tcl/Tk versioned package.
           </p>
         </sect1>
         <sect1 id="interpreter_loc">
@@ -179,19 +189,19 @@
           <p>
 	    The path name for the Tcl interpreter is
             <file>/usr/bin/tclsh</file> or
-            <file>/usr/bin/tclsh<var>X</var>.<var>Y</var></file>.
+            <file>/usr/bin/tclsh&XY;</file>.
           </p>
           <p>
 	    The path name for the Tk interpreter is
             <file>/usr/bin/wish</file> or
-            <file>/usr/bin/wish<var>X</var>.<var>Y</var></file>.
+            <file>/usr/bin/wish&XY;</file>.
           </p>
           <p>
-	    If a maintainer would like to provide the user with the
+	    If a maintainer would like to provide the user a
 	    possibility to override the Debian Tcl interpreter, he
 	    may want to use <file>/usr/bin/env tclsh</file> or
-	    <file>/usr/bin/env tclshX.Y</file>. The same consideration
-	    applies for Tk and the wish interpreter. Administrators could also
+	    <file>/usr/bin/env tclsh&XY;</file>. The same consideration
+	    applies for Tk and the <file>wish</file> interpreter. Administrators could also
 	    override default versions of the interpreters 
 	    using <tt>update-alternatives</tt>,
 	    so maintainers must always consider that the default Tcl/Tk 
@@ -205,14 +215,13 @@
       <sect id="libtcltk">
         <heading>Tcl/Tk libraries</heading>
         <p>
-         The Tcl/Tk libraries are provided by 
-	 <package>tcl<var>X</var>.<var>Y</var></package> and
-	 <package>tk<var>X</var>.<var>Y</var></package>.
+         The Tcl and Tk libraries are provided by 
+	 &tclXY; and &tkXY; respectively.
 	 These packages install
-	<file>/usr/lib/libtcl<var>X</var>.<var>Y</var>.so.<var>Z.</var></file> 
-         (soname is <tt>libtcl<var>X</var>.<var>Y</var>.so.<var>Z</var></tt>)
-         and <file>/usr/lib/libtk<var>X</var>.<var>Y</var>.so.<var>Z</var></file>
-	 (soname is <tt>libtk<var>X</var>.<var>Y</var>.so.<var>Z</var></tt>).
+	<file>/usr/lib/libtcl&XY;.so.<var>Z</var></file>
+         (soname is <tt>libtcl&XY;.so.<var>Z</var></tt>)
+         and <file>/usr/lib/libtk&XY;.so.<var>Z</var></file>
+	 (soname is <tt>libtk&XY;.so.<var>Z</var></tt>).
        </p>
       </sect>
 
@@ -220,16 +229,15 @@
         <heading>Tools/files for Development of Tcl/Tk modules and extensions</heading>
         <p>
           Some tools and files for development of Tcl/Tk modules and extensions are
-	  packaged as <package>tcl<var>X</var>.<var>Y</var>-dev</package>
-	  and <package>tk<var>X</var>.<var>Y</var>-dev</package>.
+	  packaged as &tclXY-dev; and &tkXY-dev;.
 	  These packages provide header files as well as static and stub libraries.
-	  Header files are installed in <file>/usr/include/tcl<var>X</var>.<var>Y</var>/</file>
-	  and <file>/usr/include/tk<var>X</var>.<var>Y</var>/</file> directories.
-	  Default packages <tt>tcl-dev</tt> and <tt>tk-dev</tt> must provide also
-	  symlink for the right versioned header files directory
+	  Header files are installed in <file>/usr/include/tcl&XY;</file>
+	  directory (for both Tcl and Tk).
+	  Default packages <tt>tcl-dev</tt> and <tt>tk-dev</tt> provide
+	  symlinks to the right versioned header files directory
 	  <example>
-	  /usr/include/tcl -> /usr/include/tclX.Y
-	  /usr/include/tk -> /usr/include/tclX.Y
+	/usr/include/tcl -> /usr/include/tcl&XY;
+	/usr/include/tk -> /usr/include/tcl&XY;
 	  </example>
 	  See net section and <ref id="debian_oddities"> for more information about 
 	  possible issues with extension building due to Debian customizations.
@@ -239,49 +247,53 @@
       <sect id="paths">
 	<heading>Auto_load Path</heading>
 	<p>
-	  The package search path (<tt>$auto_path</tt>) for both Tcl and Tk
+	  The package search path (<var>auto_path</var>) for both Tcl and Tk
 	  is a list searched in the following order:
 	  <taglist>
 	  <tag>Site modules and extensions:</tag>
 	  	<item>
 		 <example>
-	 	 /usr/local/lib/tcltk (architecture dependent files)
-	 	 /usr/local/share/tcltk (architecture independent files)
+	/usr/local/lib/tcltk (architecture dependent files)
+	/usr/local/share/tcltk (architecture independent files)
 		 </example>
 		</item>
 	  <tag>Packaged modules and extensions:</tag>
 	  	<item>
 		 <example>
-	 	 /usr/lib/tcltk (architecture dependent files)
-	 	 /usr/share/tcltk (architecture independent files)
+	/usr/lib/tcltk (architecture dependent files)
+	/usr/share/tcltk (architecture independent files)
 		 </example>
 		</item>
 	  <tag>Version specific core modules and extensions:</tag>
 	  	<item>
 		<example>
-		/usr/share/tcltk/tcl<var>X.Y</var>
-		/usr/share/tcltk/tk<var>X.Y</var>
+	/usr/share/tcltk/tcl&XY;
+	/usr/share/tcltk/tk&XY; (for Tk only)
 		</example>
 		</item>
 	  </taglist>
 	</p>
 	<p>
 	Maintainers must ensure that modules and extensions are correctly installed in subdirs of
-	the paths above consistently. See <ref id="modules_loading"> also for more information 
+	the paths above consistently. See <ref id="modules_loading"> for more information 
 	about Tcl/Tk specific ways of dealing with modules and extensions loading.
 	Developers must consider that these defaults impact TEA-based modules and use
-	preferably system-wide <file>tcl.m4</file> instead
+	preferably system-wide <file>tcl.m4</file> (it isn't TEA-compatible though) instead
 	of private one (see <ref id="debian_oddities">).
 	</p>
-
       </sect>
 
       <sect id="docs">
 	<heading>Documentation</heading>
 	<p>
-	Default packages <file>tcl-doc</file> and <file>tk-doc</file> are provided which depend
-	on default versioned <file>tclX.Y-doc</file> and <file>tkX.Y-doc</file>. They both
-	include also a copy of the most up-to-date version of this policy and suitable symlinks.
+	Default packages &tcl-doc; and &tk-doc; which depend
+	on default versioned &tclXY-doc; and &tkXY-doc; are provided.
+	Since different &tclXY-doc; and &tkXY-doc; conflict in files and cannot be installed
+	simultaneously, &tcl-doc; and &tk-doc; only recommend
+	&tclXY-doc; and &tkXY-doc; to allow administrators to install
+	any desirable package with Tcl/Tk manual pages.
+	The package
+	&tcl-doc; also includes a copy of the up-to-date version of this policy.
 	</p>
       </sect>
     </chapt>
@@ -306,7 +318,7 @@
          If the package already uses the name 
 	 <package>tcl<var>foo</var></package> or <package>tk<var>foo</var></package>, that is,
 	 naming without Tcl/Tk versioning even if version-dependent and/or without hyphen, may use 
-	 the name for now. However, the new package naming is recommended for consistency.
+	 the name for now. However, the package naming proposed above is recommended for consistency.
 	</p>
       </sect>
 
@@ -314,20 +326,22 @@
 	<heading>Dependencies</heading>
 	<p>
 	  Packaged modules available for one particular version of Tcl/Tk must
-	  depend on the corresponding
-	  <package>tcl<var>X</var>.<var>Y</var></package> and/or
-	  <package>tk<var>X</var>.<var>Y</var></package> 
-	  package. They can depend on both the default version and
-	  the virtual <package>tclsh</package> or <package>tk</package>
-	  packages when they are version independent. Those virtual packages
-	  could be dropped after Lenny release, so their use is deprecated.
-	  Due to limitations in current autobuild daemon
-	  it is mandatory to prepend a preferred Tcl/Tk version before each of the virtual packages.
-	  The preferred version should correspond to the current default Tcl/Tk.
-	  Preferably packaged modules should instead depend on the default tcl and tk packages with
-	  or without version relationships when appropriate. This is the recommended dependency
-	  style.
+	  depend on the corresponding &tclXY; and/or &tkXY; package.
 	</p>
+        <p>
+	  The recommended dependencies of version-independent packages are the following:
+	  If the package works in all available Tcl/Tk versions it should depend on
+	  &tcl; (>= &XY;) | &tclsh; or &tk; (>= &XY;) | &wish; (version in parentheses is optional).
+	  If the package works with current and future Tcl/Tk versions it should depend on
+	  the default packages &tcl; or &tk;.
+	  It is not recommended to use dependency on virtual packages &tclsh; and &wish; 
+	  because it would make transition to a newer default Tcl/Tk version less convenient,
+	  and because they cannot be used to express any versioning constraints (strict or relaxed).
+	  In one cases they still could be useful: an administrator could be interested in not installing
+	  the default Tcl/Tk versions and use a local package or some older version instead. The administrator
+	  can do that at his/her own risk, due to the missing version control, and in the hypothesis
+	  that modules and extensions are able to manage nicely unexpected versions.
+	</p>
       </sect>
 
     <chapt id="programs">
@@ -338,9 +352,9 @@
 	<p>
 	  Programs that can run with any version of Tcl/Tk should be started
 	  with <tt>#!/usr/bin/tclsh</tt> or <tt>#!/usr/bin/wish</tt>.  
-	  They must also specify a dependency on <package>tclsh</package> or
-	  <package>wish</package> virtual packages (deprecated) or on default 
-	  packages (better). 
+	  They must also specify a dependency on default 
+	  packages &tcl; and/or &tk; with possible alternatives &tclsh; and/or
+	  &wish; virtual packages.
 
 	  You're free to use <tt>#!/usr/bin/env tclsh</tt> and <tt>#!/usr/bin/env wish</tt>, 
 	  if you'd like to give the user a chance to override the Debian Tcl/Tk package with a
@@ -352,14 +366,14 @@
 	<heading>Version Dependent Programs</heading>
 	<p>
 	  Programs which require a specific version of Tcl must start with
-	  <tt>#!/usr/bin/tclsh<var>X</var>.<var>Y</var></tt>.  They must also
-	  specify a strict dependency on <package>tcl<var>X</var>.<var>Y</var></package>.
+	  <tt>#!/usr/bin/tclsh&XY;</tt>.  They must also
+	  specify a strict dependency on &tclXY;.
 	  Programs which require a specific version of Tk must start with
-	  <tt>#!/usr/bin/wish<var>X</var>.<var>Y</var></tt>.  They must also
-	  specify a strict dependency on <package>tk<var>X</var>.<var>Y</var></package>.
+	  <tt>#!/usr/bin/wish&XY;</tt>.  They must also
+	  specify a strict dependency on &tkXY;.
 
-	  Again, if you're using <tt>#!/usr/bin/env tclsh<var>X</var>.<var>Y</var></tt>, 
-	  or <tt>#!/usr/bin/env wish<var>X</var>.<var>Y</var></tt>
+	  Again, if you're using <tt>#!/usr/bin/env tclsh&XY;</tt>, 
+	  or <tt>#!/usr/bin/env wish&XY;</tt>
 	  please be aware that a user might override the Debian Tcl/Tk packages with a local version
 	  and that release default packages can change also.
 	</p>
@@ -375,28 +389,48 @@
 	for. In order to build for a specific version, add the versioned Tcl/Tk packages
 	dependencies; it is generally better and recommended depending on the appropriate default
 	packages with an eventual strict or relaxed versioning.
-
-	Extension packages should depend appropriately on one or more of the 
-	following packages, for instance (with or without additional package version 
+      </p>
+      <p>
+	Extension packages and applications which link to Tcl/Tk libraries should depend
+	appropriately on one or more of the 
+	following packages (with or without additional package version 
 	relationships):
 	<example>
 	tcl-dev
 	tk-dev
-	tclX.Y-dev
-	tkX.Y-dev
+	tcl&XY;-dev
+	tk&XY;-dev
 	</example>
-	Module packages or script libraries should depend on the
+      </p>
+      <p>
+        For example, <package>tclreadline</package> build dependencies are the following:
 	<example>
-	tcl<var>X</var>.<var>Y</var>
+	Build-Depends: debhelper (>= 5.0.0), <var>tcl-dev</var>,
+	 libreadline5-dev, autotools-dev, quilt
+	</example>
+      </p>
+      <p>
+	Module packages, script libraries and Tcl-only applications should depend on the
+	<example>
 	tcl
-	tk<var>X</var>.<var>Y</var>
 	tk
+	tcl&XY;
+	tk&XY;
 	</example>
-	Dependencies on the virtual packages
-	<package>tclsh</package> or 
-	<package>wish</package> respectively, are acceptable in Lenny, but deprecated. Use
-	default packages instead.
       </p>
+      <p>
+        For example, <package>tcllib</package> build dependencies are the following:
+	<example>
+	Build-Depends: debhelper (>= 5.0.0), quilt
+	Build-Depends-Indep: <var>tcl</var>
+	</example>
+      </p>
+      <p>
+	Due to limitations of current autobuild daemon
+	it is forbidden to use build dependencies on the virtual packages
+	&tclsh; or &wish; only. These dependencies cannot guarantee consistent build environment,
+	so it is mandatory to prepend a preferred Tcl/Tk version before each of the virtual packages.
+      </p>
     </appendix>
 
     <appendix id="modules_loading">
@@ -405,7 +439,7 @@
       Tcl/Tk supports a few alternative ways for modules loading. 
       Modules can be implemented as shared libraries, Tcl/Tk scripts or a combination
       of them. Generally, specific index scripts are used for that and they
-      need to be placed in a directory included in the <tt>$auto_path</tt> list along
+      need to be placed in a directory included in the <tt>auto_path</tt> list along
       with scripts and libraries. 
       Old non-package script libraries require a <tt>tclIndex</tt> generated with
       the <tt>auto_mkindex</tt> Tcl instruction. 
@@ -423,12 +457,12 @@
       <heading>Possible issues building Tcl/Tk extensions</heading>
       <p>
       In order to support this policy, a number of changes have been applied in upstream
-      <file>init.tcl</file>, <file>tclConfig.sh</file> and <file>tcl.m4</file> files.
+      <file>init.tcl</file>, <file>tclConfig.sh</file>, <file>tkConfig.sh</file> and <file>tcl.m4</file> files.
       Extensions using TEA with local copies of <file>tcl.m4</file>,
       or which use custom guesses about Tcl/Tk configuration could require explicit use of
       <example>
-	--with-tcl=/usr/share/tcltk/tclX.Y
-	--with-tk=/usr/share/tcltk/tkX.Y
+	--with-tcl=/usr/share/tcltk/tcl&XY;
+	--with-tk=/usr/share/tcltk/tk&XY;
       </example>
       or other custom hacks.
       </p>
@@ -437,7 +471,39 @@
     <appendix id="check_list">
       <heading>Maintainer's Checklist</heading>
       <p>
-      TO BE DONE.
+      <enumlist>
+      	<item>
+        Tcl/Tk has in general a very backward compatible API both at C and commands set levels.
+	When packaging a module or extension, verify if it requires a specific minimal version
+	and if it includes run-time checks about that, possibly (which is always convenient).
+	Scripts can include a <file>package require ?-exact? Tcl X.Y</file> or 
+	<file>package require ?-exact? Tk X.Y</file>, for instance.
+	In those cases, use a versioned
+	dependency on one of the default packages (&tcl;, &tk;, &tcl-dev; or
+	&tk-dev;), e.g. &tcl; (>= &XY;).
+	That is recommend instead of versioned packages dependencies, which are anyway
+	supported for compatibility with past conventions. Note also that &tk;
+	depends on &tcl; and &tk-dev; depends on &tcl-dev;.
+	</item>
+	<item>
+	Always install your package stuff in a per-package sub-directory of
+	<file>/usr/share/tcltk</file> (for scripted modules) and/or <file>/usr/lib/tcltk</file> (for
+	shared library extensions) along with the needed index file (see <ref id="modules_loading">).
+	</item>
+	<item>
+	This policy customizes <var>auto_path</var> differently with respect to
+	generic upstream UNIX platforms, so that you should use preferably 
+	system provided <file>tcl.m4</file>. Occasionally 
+	that could either require custom hacks for non TEA-based building systems, or 
+	using <file>--with-tcl</file> or <file>--with-tk</file> argument for TEA scripts.
+	</item>
+	<item>
+	Current policy still allows administrators to change default <file>tclsh</file> and
+	<file>wish</file> interpreters to different versions. Your packaged modules
+	and extensions should always be able to cope with that, and eventually to complain and 
+	terminate nicely.
+	</item>
+      </enumlist>
       </p>
     </appendix>
 




More information about the Pkg-tcltk-commits mailing list