GNU Libtool


Home | News | Documentation | Future Directions | Contributing | Administration

Maintainership

GNU Libtool was conceived, designed and implemented by:

GNU Libtool's Dynamic Loader library (libltdl) was conceived, designed and implemented by:

GNU Libtool and libltdl have previously been maintained, enhanced, ported and otherwise advanced by:

GNU Libtool and libltdl are currently being cajoled, bullied, rewritten and otherwise dragged into the future by:

The following people also enjoy write access under the given rules:

Applying Patches

Currently we five have admin access to the libtool repository and co-ordinate changes on the libtool-patches list. We observe the following rules when changing the repository:

Submitting Bug Reports

There is a special list for reporting bugs, bug-libtool@gnu.org, to enable the developers to track submitted bug reports. If you think you have found a bug in libtool, then you should, in the first instance send as complete a report as possible to this list. Ideally, you should include the text you get by running config.guess, the text you see when you run configure, and if you can, a patch made with diff -u5 which fixes the problem. If you can send a small script, modelled after the scripts in the tests directory of the distribution which fails with the unpatched distribution, but passes with your patch applied we can add the test to the distribution to make sure the bug doesn't reappear.

Submitting Patches

Every patch must have several pieces of information before we can properly evaluate it.

If you want to be certain that your patch doesn't get lost among the noise on the mailing list, you can also upload a copy to the patch manager at savannah. Please bear in mind that not all of the maintainers have easy access to the web, so, until savannah is able to mirror new patches directly to the patch list, you will need to manually send a copy there too. If you only want to submit your patch once, then send it to the libtool-patches@gnu.org mailing list and not the savannah patch manager.

When you have submitted your patch, somebody will tell you what to do next. If the patch is small, just send it directly to the list. Be sure to send the patch as a mime text attachment, or pasted directly into the mail. Uuencoded patches, or patches otherwise rendered unreadable by peculiar mime encoding make it much harder for the libtool developers to read and/or apply your patch. If your patch is very large (more than a hundred kilobytes), try to upload the patch itself to savannah and post only a link to the mailing list.

Persistent contributors who submit high quality patches may be given direct git access. You have been warned.

Coding Standards

All contributions must conform to the GNU Coding Standards. Submissions which do not conform to the standards will be returned with a request to reformat the changes.

ChangeLog entries are formatted according to some specific rules:

Copyright Assignment

Before we can accept non-trivial code contributions from you, we need a copyright assignment on file with the FSF. A description of the process is available here. This boils down to the following instructions:

Release Numbering

Libtool is about to change its version numbering system to follow the rules described below. This will begin as libtool-1.6 is branched, when the trunk will become version 1.7a.

Version numbers are chosen to make it easy for users to decide two things:

Release Numbering
Type master branch-1-6 branch-1-8
git tag Version # git tag Version # git tag Version #
point release     release-1-6 1.6  
git   1.7a   1.6.1a  
alpha release release-1-7b 1.7b      
git   1.7c      
patch release     release-1-6-2 1.6.2  
git       1.6.3a  
alpha release release-1-7d 1.7d CLOSED OPENED
point release       release-1-8 1.8
git   1.9a     1.8.1a
alpha release release-1-9b 1.9b      
git   1.9c      
patch release       release-1-8-2 1.8.2
git         1.8.3a

To make this happen, the maintainers only have one release branch open at a time from which we make a point release with an incremented `minor' version (the second number) compared to the master branch version at the time it is opened. After that patch releases are made from that release branch with even numbered `micro' versions (the third number) -- the odd numbered `micro' versions represent the git revisions in between.

We also put a letter on the end of `odd' micro revisions in git, so that the users can tell it is an untested build if they use it. Additionally it would allow us to make `beta' quality releases from the release branch with an `odd' micro revision and `even' letter, if we decide that is useful. We decided not to make the `micro' revisions the same between git revisions and patch releases so that users don't get confused about whether say libtool-1.6.1a is newer or older than libtool-1.6.1.

Similarly, we stick to even `minor' version numbers on release branches and odd `minor' version numbers on the trunk, so that we don't have confusion about whether libtool-1.5b is newer than libtool-1.5, or libtool-1.5.1.

git conventions

The source for libtool is managed collaboratively in git on the FSF Savannah system. The conventions set out below represent how we plan to do things from here on in, although historically, the tree has not been maintained in quite the same way. Don't be surprised if things don't seem to follow these conventions prior to branch-1-6!

git tag names

Libtool releases three types of source tarball from git:

  1. Alpha releases are the lowest quality tarballs we build. They come from master, and indicate that a new point release is coming. You can distinguish an alpha by its `even' lettered version suffix: 1.7b and 1.7d for example. Alpha releases are tagged in git as release-[major]-[minor][letter]: release-1-7b and release-1-7d here.
  2. Point releases are normally reasonable stable, and are the first release made from a new release branch. You can distinguish a point release, because in has only major and minor parts in its version number: 1.6 and 1.8 for example. Point releases are tagged in git as release-[major]-[minor]: release-1-6 and release-1-8 here.
  3. Patch releases are only ever made from the most recent release branch and never contain any new features over the point release they fix. You can distinguish a patch release, because it carries a numeric micro version suffix: 1.6.2 and 1.6.4 for example. Patch releases are tagged in git as release-[major]-[minor]-[micro].
git Release Tagging
git tags and libtool version numbers.

In addition to the official releases made by the libtool team, people often like to install a self built git snapshot. You can distinguish a snapshot by its `odd' lettered version: where `odd' means `a', `c', `e', `g', etc.


Home | News | Documentation | Future Directions | Contributing | Administration

Return to GNU's home page.

Please send FSF & GNU inquiries & questions to gnu@gnu.org. There are also other ways to contact the FSF.

Please send comments on these web pages to webmasters@www.gnu.org, send other questions to gnu@gnu.org.

This article, Copyright © 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA

Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved.

$Date: 2008/04/28 22:00:46 $ $Author: rwild $