A contribution to the GLIBC project should always be sent to the appropriate mailing list for the contribution scope:

In addition, a bugzilla entry for a bug may be created and should contain everything a high-quality mailing list submission would contain.

Mailing List Moderation

The libc-alpha mailing list is moderated in order to improve the quality of the contribution submissions to the mailing list.

Contribution Guidelines

A high-quality contribution includes the following things:

Contribution Email Subject Line

A high-quality email subject line for a contribution contains the following tags:

For a Single patch contribution:

For Multi-part patch set contributions where [PATCH 0/2] is used to described the forth coming patches:

For a request for comment that doesn't have to be a patch at all:

For a request for comment on a patch or patch set:

For a patch for against a bug filed in bugzilla:

For a patch that effects a particular architecture only:

Properly Identified Contribution Scope

Base

Add-Ons (NPTL, localedata, posix, libidn, et al)

Ports

Out-of-Scope (Automatically Generated Files)

Changes in automatically regenerated files (configure, for example) should not be included in the submitted patch.

Detailed Explanation of the Patch

General Patch Requirements

Qualification (Locales)

Most contributions don't require explicit justification for the patch. Necessity of inclusion can be negotiated with the maintainer. One exception is Locales. If your proposed contribution changes a fundamental provision of the locale you may need to demonstrate one or all of the following:

These rules (sans the last parenthetical rule) are highlighted in the following post by the GLIBC maintainer:

Re: [PATCH] [et_EE]: Set first_{week,work}day to monday

Testing

     Copyright (C) year1, year5 copyright-holder
  1. To add 'year6' following 'year5' simply add ', year6' between 'year5' and the copyright-holder, e.g.,:

     Copyright (C) year1, year5, year6  copyright-holder
  1. For GLIBC, spanning of consecutive years IS allowed. Therefore, when adding a third (or more) consecutive year to the copyright statement (like 'year7'), you may replace individual consecutive years with a year range, e.g.,

     Copyright (C) year1, year5-year7, copyright-holder
  1. Do NOT abbreviate dates into two digit year format, i.e., don't abbreviate '2000' as '08'. As indicated in this thread on libc-alpha, the maintainer does not like the two-digit year format.

Attribution

  • Contributed by Name <email>.

Properly Formatted GNU ChangeLog

YYYY-MM-DD<2 spaces>John Doe<2 spaces><johndoe@some.email.address>
<blank-line>
<tab--->[BZ #<number>]<use this if there is a bugzilla associated with the patch>
<tab--->* login/utmp_file.c (pututline_file): Replace call to 'dup()'<line wrap at or before column 79>
<tab--->with libc internal symbol '__dup()' to avoid access through<line wrap at or before column 79>
<tab--->the PLT.

2008-12-12  John Doe  <johndoe@some.email.address>

        [BZ 9999]
        * login/utmp_file.c (pututline_file): Replace call to 'dup()'
        with libc internal symbol '__dup()' to avoid access through
        the PLT.

Properly Formatted Changes

Nested C preprocessor directives need to properly indented.

e.g.:

#if FOO
# define BAR
#endif

and not:

#if FOO
#define BAR
#endif

Note that in a header file, the outer #ifndef _FILE_H/#endif pair does not increase the indentation level.

#ifndef _FILE_H
#if FOO
# define BAR
#endif
#endif

Proper Formatted Unified diff of the Changes

If you have any questions regarding these criteria please email libc-help@sourceware.org .

None: Contribution checklist (last edited 2012-02-02 22:48:31 by KeesCook)