tech-pkg archive

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

Re: packages and TeXLive revisions



Once again, thanks for writing the new documentation.  Here is the outcome of 
my analysis of the TeX Live packages.  In case anyone cares, I have attached 
the Makefile and the default target's output that underlies part of this 
analysis.  Below is a summary of the numeric results, some observations, 
consequences/questions, and suggestions for improving the documentation.  For 
my own benefit, I would appreciate responses to the questions and any comments 
about the rest.  If you wish to make use of the suggested documentation, please 
do.

Overall summary of packages (see Makefile for how the numbers were generated):

Number  Description                                       Criterion
617         TeX packages                                  print/tex-* 
directories
603         TeX Live packages                         include texlive/package.mk
 14         other TeX packages                        print/tex-* without 
texlive/package.mk
518         TeX Live packages with rev.         TEXLIVE_REV defined
 85         TeX Live packages without rev.    TEXLIVE_REV not defined (all 
could be defined)
 30         explicit DIST_SUBDIR                    TeX Live packages with 
DIST_SUBDIR defined (none are needed)

Observations:
- All TeX Live packages seem to have revision information in
 tlpkg/tlpobj/*tlpobj (only checked ones lacking TEXLIVE_REV assuming
 others got the information from there in the first place)

- All TeX Live packages either have a version (part of CRAN submission
 form) or could (e.g., YYYYMMDD-based)

- relevant texlive/package.mk fragment
 .if empty(TEXLIVE_REV)
 DIST_SUBDIR?=  ${PKGNAME_NOREV}
 .else
 DIST_SUBDIR?=  ${PKGBASE:S/-doc$//}-${TEXLIVE_REV}
 .endif

Consequences/questions:
- All TeX Live packages could define ${TEXLIVE_REV}
 + None need a comment mentioning "TeX Live Revision"

- All TeX Live packages could have DIST_SUBDIR defined consistently by
 the second branch in package.mk
 + None need an explicit DIST_SUBDIR
 + First branch in package.mk is probably useful to catch mistakes,
   but why ${PKGNAME_NOREV} instead of ${PKGBASE:S/-doc//}?  If the
   latter is ok, why not replace the entire conditional with the
   following:

   DIST_SUBDIR?=        ${PKGBASE:S/-doc$//}${TEXLIVE_REV:D-${TEXLIVE_REV}}

 + Why not emit a warning of some kind if DIST_SUBDIR is defined?

- Some examples of oddities in existing packages:

 + tex-a4wide/Makefile:PKGNAME= tex-${DISTNAME}-2010                    # why 
not YYYYMMDD?
 + tex-amscls/Makefile:PKGNAME= tex-${DISTNAME}-2010.20248              # why 
mix of date/revision?

- What are the consequences of switching to a consistent DIST_SUBDIR
 definition based entirely on TEXLIVE_REV?

Suggestions for modifying the documentation patch:

Note to package developers:

 * When creating/updating a TeX package, please set TEXLIVE_USE_CTAN
   either in mk.conf or in the environment.  This will enable proper
   updating of the distinfo via the "makesum" target.  Additionally,
   be sure to define TEXLIVE_REV (see below) and include the file
   "../../print/texlive/package.mk" in the package Makefile.  Note
   also that some TeX Live packages have versions (e.g., date-based)
   containing hyphens (-); the hyphens should be removed in the
   package Makefile.

TEXLIVE_REV
   A string used to define DIST_SUBDIR that is useful to
   differentiate among distfiles because ${DISTNAME} will generally
   not include a revision number.  The value of TEXLIVE_REV should be
   taken from the "revision" line present for each package in
   ${WRKSRC}/tlpkg/tlpobj/${DISTNAME}.tlpobj.

I hope this is helpful.  Thanks for any input you can offer.

Cheers,
Brook

Attachment: Makefile
Description: Binary data

Attachment: texlive-packages.out
Description: Binary data



Home | Main Index | Thread Index | Old Index