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