15

This is one of the questions I get on and off, so I thought I'd post about it.

A couple of times, I've ended up with a situation where I need to modify code in a CTAN package proper - that is, I cannot just manage with a redefinition pattern like:

\let\old@COMMAND\current@COMMAND
\def\current@COMMAND{%
  % pre-hook commands ...
  \old@COMMAND
  % ... post-hook commands ...
}

... in my main code. The changes may be just a couple of lines in a, say, 100's of lines of .sty code, adding a new command - so it is in the "feature request" category, rather than "bugfix"; and as such, calling that with a "new" package name, and publishing it as such, would not be justified, in my opinion.

Of course, I could always "publish" such an "update" to a package by posting it anywhere on the 'Net (from pastebin to here); but I was interested - what is the correct procedure if I'd want this update published on the CTAN package proper, and the author/current maintainer are not accessible at the moment (say, up to a month from initial query) to approve/disapprove of the update?

Some related info:

  • How can I contribute to CTAN?

    Having done that, take your files and bundle them up in a ZIP or TAR.BZ (or etc.) archive and upload it. There are two CTAN ‘mirrors’ to which you can upload your work: ...
    The only difference between the two is that a different person (in a different timezone) will process the upload.

  • Historical, stable version archive of packages

    CTAN holds the current release of each package: the 'archive' in the name is more because it's a single source for 'everything' than meant to imply a record. (Remember that before CTAN collecting TeX sources meant trawling many different author-maintained sites.)

    Maintaining a 'back catalogue' of material is down to each package author, and as a result many packages have limited or no publicly-available source repository. The nearest you can get is probably the TeX Live SVN, which gets updated each time a package is changed in TeX Live. ...

    there are only archives of complete TeXLive versions: ftp://tug.org/historic/systems/texlive/ ...

    I'm actually working on an archive of CTAN using automated Mercurial repositories for the last two weeks. The CTAN content is mirrored daily and each CTAN package (with exceptions) is committed to its own Mercurial repository.

    This is currently online as http://ctanhg.scharrer-online.de/, but not 100% finished yet. Also, it might not handle large loads well. You can get each archived version as ZIP or Mercurial clone.

  • Is there a database of Tex/LaTeX package bugs where one can report or track status?: No, and also:

    You might know, you can download all packages from a mirror of CTAN. But CTAN itself is run by more or less three persons, who are serving there since many years. Without them, no CTAN.[1]

    So if any reader of this question considers asking for more than the packages on CTAN, namely a bugzilla or whatever: We depend on people who contribute their work to maintain our infrastructure and even at the very heart of it there is a lack of people.

  • What is the preferred way to contact a package author? - TeX - LaTeX Meta Stack Exchange

    You should first check the package manual and its README file (both usually under http://www.ctan.org/pkg/) for an email address

    Please note that virtually all package authors do write these in their spare time and might be busy with their day job, so you should give them 1-2 weeks to respond, then write them a second email.

    Several package authors are also reading the comp.text.tex usenet group and people often post package related issues there. However, you still should CC the author using a private email as well. He/she might overlook the post otherwise. Also it is a little rude to post it in public but not contact the author directly as well.

    This varies from package author to package author. If you can find a (working) e-mail address, then this is usually the best way.

So, in other words: if I naively packaged my changes in the original someoneelsespackage.zip and uploaded that to CTAN, then one of those poor souls volunteering to maintain CTAN would simply get a message, hopefully automatically identifying that such a package already exists but the originating email doesn't match, and so it will be refused outright - and thus I've managed to waste people's time for absolutely nothing. Then again, I could rename that to myversionofsomeoneelsespackage.zip - that may pass through the automated checks, and even the judgment of maintainers; but is it really worth increasing all the noise (with identical pdf .docs, etc) for what is essentially a two lines patch? This is the main dilemma I have, that motivates this question...

6
  • 3
    while i'm thinking about a possible answer, i'd simply like to point out that, instead of "www.ctab.org" in your third xref, it should be "www.ctan.org". indeed, the ctan maintainers are very hard working and conscientious. remember also that packages posted to ctan also go into tex live (unless they're not freely licensed or have some other restriction, such as being significantly obsolete). so a change of only two or three lines, as you point out, is a disservice to a lot of people. Jul 7, 2014 at 19:29
  • 3
    I do not want to diminish your efforts in "correcting/updating" an existing package or adding features to it, but do you really think it is necessary, to do it yourself, without asking the maintainer(s) (if there any...)? I would rather contacting the authors/maintainers and suggest a fix/feature request (or whatever you may call it) or if that you should not be possible, publish a new package of your own, stating that it is based on package 'x' and contains some fixes etc. (Mind the license(s)) and also in that case: ask the authors before.
    – user31729
    Jul 7, 2014 at 19:44
  • 6
    If your main objective is to share an improvement and/or bug fix to an existing package, I would strongly encourage you to contact repeatedly the person (or persons) identified as the package's maintainer(s). Providing not only some diffs but an entire MWE that demonstrates what your code does will increase the likelihood of a response. If the package's maintainers don't respond within a reasonable amount of time -- say, within two to three weeks, not hours! -- you might post a note on this site or on comp.text.text to inquire if anyone knows what the maintenance status of that package is.
    – Mico
    Jul 7, 2014 at 19:47
  • 3
    There is a procedure for taking over (seemingly) orphaned packages, but -- reasonably so -- it takes some time after notifying CTAN people of your intention and after allowing for a reasonable amount of time for the current maintainer/developer to respond. Traditionally, comp.text.tex has seen some discussion about these sorts of matters.
    – jon
    Jul 7, 2014 at 19:54
  • 5
    if the named author/maintainer of a package doesn't respond to the address listed in the documentation, write to the ctan maintainers (ctan at dante.de) asking if they have a more current/reliable address. they often do have more information than is available in the public catalogue. Jul 7, 2014 at 19:59

1 Answer 1

23

Whether such an update is allowed at all depends entirely on the licence/copyright conditions under which the original code was distributed. If it is LPPL version 1.3 there are explicit conditions under which maintenance may be taken over. Similarly if it is GPL then in place edits are not blocked by the licence. But in general, unless such a licence has been used, copyright is held by the original author and there's no right to change the files.

But even if edits are allowed, "a month" is far too short a period to contemplate changing someone else's package. I certainly wouldn't be amused if someone edited one of my files just because I'd been away, or away from TeX, for a few weeks.

This site (and similar sites) has lots of answers that are essentially patches or enhancements to existing packages and that is a perfectly reasonable state of affairs. Users can find them and every now and then a package maintainer can do a sweep of suggested updates and incorporate them in a new update. I recently did a sweep of this site and the latex bug database looking for longtable enhancements and picked up 20 years worth of code suggestions. That may be an excessive level of stability, but you shouldn't expect a package author to necessarily update packages every time someone suggests an update.

If you want the enhancement to get to ctan more quickly just distribute a package of the form new-foo.sty that does \RequirePackage{foo} together with your two line patch. there is no need to duplicate the code of the original.

1
  • 1
    (+1) Much better! I definitely read the 'but...' as applying to the GPL. (That is, 'you can edit the files in place, but you can't do anything else' which makes it sound as if you couldn't, for example, redistribute the modified versions.) Now it is entirely unambiguous.
    – cfr
    Jul 8, 2014 at 16:16

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .