[Top][All Lists]

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

[address@hidden: Structure and Administration of the GNU Project]

From: Alfred M. Szmidt
Subject: [address@hidden: Structure and Administration of the GNU Project]
Date: Sun, 23 Feb 2020 13:04:47 -0500

This might be interest for anyone wondering how the GNU project works.
I've attached the text version of the the Structure and Administration
of the GNU Project document as well (version 1.0.1).

--- Begin Message --- Subject: Structure and Administration of the GNU Project Date: Sat, 22 Feb 2020 22:50:20 -0500
[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

People know that each GNU package has one or more maintainers
appointed by the GNU Project.  People mostly don't know about the
committees that carry out most of the administration of the project.
We have now published a complete description of the administrative
structure of the GNU Project.

Dr Richard Stallman
Chief GNUisance of the GNU Project (
Founder, Free Software Foundation (
Internet Hall-of-Famer (

If you have a working or partly working program that you'd like
to offer to the GNU project as a GNU package,

--- End Message ---
===File ~/
#+title:    The Structure and Administration of the GNU Project
#+options:  author:nil html-postamble:nil num:nil timestamp:nil toc:nil
#+options:  -:nil ':t
#+startup:  showall
#+macro:    mdash @@html:—@@

#+begin_export html
<p class="byline">by Brandon Invergo and Richard Stallman</p>

<p class="big"><strong>Version 1.0.1</strong></p>

An [[][Org version]] of this document 
is also available.

  Canonical version:

  Copyright © 2020 Brandon Invergo and Richard Stallman
  Released under Creative Commons Attribution Noderivatives Licenses 4.0

#+begin_export html
<hr class="thin" />

The GNU Project develops and maintains the 
[[][GNU operating system]].
Through this work, and other related activities, the GNU Project
advocates and promotes 
[[][software freedom]], the core 
philosophy of the
free software movement.

An operating system consists of many software components that together
make a computer do useful jobs.  It includes code for low-level
functionality, such as the kernel and drivers, plus system libraries,
as well as the programs (utilities, tools, applications, and games)
that users explicitly run.  The GNU operating system comprises
software across this entire spectrum.  Many of the programs are
specifically developed and released by the GNU Project; these are
termed "GNU packages".  The GNU system also includes components that
are [[][free programs]] released 
by other developers, outside of the GNU

Just as the programs composing an operating system must work together
coherently, the GNU Project must operate coherently.  Most of the work
consists of developing specific programs, but these programs are not
independent projects; they must fit well together to constitute the
GNU system we wish for.  Therefore, over the course of decades, we
have developed structure for the project.  None of it is new, but this
is the first time we have documented all of it in one place.

The Free Software Foundation provides many kinds of support
(facilities, services) to the GNU Project.  How that works is outside
the scope of this document.

* Software Development Structure
:CUSTOM_ID: software-development-structure

Most of the GNU Project's activity consists of development of software
packages.  Here is how GNU software development is structured.

** The Chief GNUisance
:CUSTOM_ID: chief-gnuisance

The GNU Project is led by the Chief GNUisance, Richard Stallman, the
founder of the project.  The Chief GNUisance is responsible in
principle for all significant decisions, including the overall
philosophy and standards, and directs the project in carrying them
out.  The Chief GNUisance dubs software packages as GNU packages, or
decommission one when necessary, and appoints their maintainers.

In practice, the Chief GNUisance delegates many of these decisions and
most of the tasks to others, and only rarely intervenes in the
specifics of development of a GNU package{{{mdash}}}and usually that
is with a suggestion.

** Assistant GNUisances
:CUSTOM_ID: assistant-gnuisances

This team, residing at [[][]], is 
available as a first
point-of-contact for maintainers of GNU Software.  They keep track of
development activity across the entire project, ensuring timely
releases, checking that the maintainers follow GNU's 
[[][philosophy]] and
guidelines, and resolving any conflicts that might arise.  They also
handle cases when a maintainer steps down or when a new volunteer
steps up to maintain an existing package (in which case they can
appoint a new maintainer on behalf of the Chief GNUisance).

New members are recruited from existing GNU volunteers when needed.
However, help is often welcome for specific tasks and interested GNU
volunteers are welcome to get in touch.

** Package maintainers
:CUSTOM_ID: maintainers

Each GNU software package has specific maintainers, appointed by the
Chief GNUisance or the assistant GNUisances.  The package maintainers
are responsible to the Chief GNUisance, under whose authority they are
appointed and on rare occasions dismissed, and they are in charge of
developing their packages on behalf of the GNU Project.

The initial appointment of maintainers is done when a program is
[[][accepted as a GNU package]].  These 
are normally some of the main
developers who agreed to make the program a GNU package.

Over time, maintainers occasionally step down.  In some cases, the
sole maintainer steps down from the role, leaving the package
unmaintained.  The Chief GNUisance usually delegates finding and
appointing new maintainers to the assistant GNUisances.  
[[][See the list
of currently unmaintained packages]].  We ask the old maintainers to
recommend new maintainers, and we consider those suggestions

The maintainers of a package often recruit others to contribute to its
development, and delegate some technical decisions to them.  However,
the maintainers retain authority over the whole of the package so they
can carry out their responsibility to the GNU Project.

A maintainer's primary responsibility is to do a good, practical job
of developing and maintaining the program in accord with the GNU
Project's philosophy, mission, policies, and general decisions.
Maintainers must also ensure that their packages work well with the
rest of the GNU System.  For more information, 
[[][read about maintainers'
basic duties and what it means for a program to be a GNU package]].

In general, maintainers determine the technical directions that the
software packages take and thus they make the day-to-day decisions for
the packages.  Likewise, in making their packages work well together,
maintainers can work directly with each other, and we encourage them
to do so.  Rarely, the Chief GNUisance will make a decision that
directly affects one or more GNU packages.  The maintainers of the
affected packages have the responsibility to execute the decision on
behalf of the GNU Project.

More complete information about the specific responsibilities of
maintainers and technical guidance for maintaining GNU software can be
found in the [[][Information for Maintainers 
of GNU Software]] and [[][GNU
Coding Standards]] documents.

We do not require that GNU package maintainers agree with our
philosophy, or approve of our policies{{{mdash}}}only to follow them.
Maintainers and contributors must carry out our philosophy, policies
and occasional specific decisions in their work on GNU software.

* Support for GNU Package Development
:CUSTOM_ID: package-development-support

Several teams provide various kinds of support to the development and
management of GNU packages.  Most of these teams have a coordinator to
direct them; in most cases, the coordinator reports directly to the
Chief GNUisance unless otherwise stated.  When in doubt, you can
contact the [[][GNU Volunteer Coordinators]] for advice.

** Software Evaluation
:CUSTOM_ID: gnueval

The software evaluation team at [[][]] 
evaluates software
packages proposed as GNU packages.  This involves a careful assessment
of the software's functionality as well as pertinent issues related to
software freedom and how the program fits with the GNU system.

New members are recruited from existing GNU volunteers when needed.
Prior experience with non-GNU software evaluation on Savannah is

** Software Security Evaluation
:CUSTOM_ID: gnueval-security

The software security evaluation team at 
[[][ ]]
works with the software evaluation team.  They determine whether there
are any security concerns in software that has been offered to GNU.

New members are recruited from existing GNU volunteers when needed.

** Security Team
:CUSTOM_ID: security

The [[][Security Team]] helps to resolve security bugs 
in a timely fashion.
If the maintainer of a GNU package fails to respond to a report of a
security flaw, the reporter can escalate the issue to the security
team.  If it decides the issue is urgent, it can develop a patch and
publish a fixed release of the package.  Maintainers can also ask the
security team for advice in securing their packages.

New members are recruited from existing GNU volunteers when needed.

** Platform Testers
:CUSTOM_ID: platform-testers

Volunteers behind the 
 mailing list test GNU
software pre-releases on different hardware platforms to ensure that
it functions correctly.

New volunteers are welcome.

** Mentors
:CUSTOM_ID: mentors

The GNU Mentors ([[][]]) volunteer to 
provide guidance for
new software maintainers.

We ask long-time GNU maintainers to volunteer.

** Proofreaders
:CUSTOM_ID: proofreaders

The proofreaders list is available to help GNU package maintainers by
proofreading English text.  To request proofreading, write to

* Other Teams and Services
:CUSTOM_ID: other-teams-services

Several other teams facilitate or manage the day-to-day operations
within the GNU Project, or advance specific goals of the project.

** GNU Advisory Committee

The [[][GNU Advisory Committee]] 
(GAC) exists to provide advice to the Chief
GNUisance.  Members of the Advisory Committee are appointed by the
Chief GNUisance.  The Advisory Committee generally monitors the health
of the GNU Project on behalf of the Chief GNUisance and they raise
potential issues for discussion.

** Savannah Hackers
:CUSTOM_ID: savannah-hackers

[[][Savannah]] is the GNU Project's software forge.  It 
hosts code
repositories, bug reporting tools, mailing list interfaces and more.
Savannah is administered by the 
[[][Savannah Hackers]].  They keep the 
software up and running.  In addition to ensuring that GNU software is
properly hosted in the service, the Savannah Hackers also evaluate
non-GNU software that applies to be hosted on the forge.

New volunteers are welcome.

** Webmasters
:CUSTOM_ID: webmasters

The [[][GNU Webmasters]] maintain 
and update the web pages at

Webmasters also answer various kinds of questions sent by the public,
regarding topics such as free software and licenses (when the answer
is clear).  They do initial filtering of requests to evaluate a
distro, evaluate people who would like to become webmasters, and
update the list of mirrors.

The GNU Webmaster Group is led by 
the\nbsp{}[[][Chief Webmaster]] who reports 
the Chief GNUisance.  New volunteers are welcome.  See 
[[][the Volunteer
Webmaster Quiz]].

** Web Translators
:CUSTOM_ID: web-translators

Each language has a translation team, directed by a team coordinator.
See [[][the Guide 
to Translating Web Pages on]] for more
information.  The team coordinators report to 
the\nbsp{}[[][GNU Translations
Manager]], who\nbsp{}reports to the Chief GNUisance.

** List Helpers
:CUSTOM_ID: list-helpers

[[][Listhelper]] is a 
system for semi-automatically managing spam sent to
GNU mailing lists.  Most spam is caught by spam filters, but human
moderators are also available to manage the queue of messages
predicted not to be spam.

New members are recruited from existing GNU volunteers when needed.

** GNU Volunteer Coordinators

The GNU Volunteer Coordinators ([[][]]) help to 
guide new
volunteers towards suitable jobs within the GNU Project

New GVC volunteers are welcome, but prior experience volunteering
within GNU (and thus broad knowledge of the GNU Project) is highly

** GNU Education Team
:CUSTOM_ID: education

The [[][GNU Education Team]] promotes the 
adoption of the GNU Operating
System in educational environments.  It also evaluates schools and
speaks to school administrators.

New volunteers are welcome.

** GNU Standards Group
:CUSTOM_ID: standards

The GNU Standards Group evaluates proposals to update the GNU coding
standards.  Anyone can submit a proposal via the 
[[][bug-standards]] mailing
list.  The group then discusses and evaluates the proposal to work out
all the details and implications.  They then present the proposal and
a recommendation to the Chief GNUisance, who makes the decision.  The
group is also responsible for installing changes to the document as
well as updating the document on the web.

New volunteers are recruited from existing GNU volunteers when needed.

* Correcting Errors
:CUSTOM_ID: correcting-errors

If we find errors or omissions in this description of the existing
structure, which are possible since it previously had no centralized
documentation, we will update this document, both 
[[][the Org version]] and
[[][the HTML version]], advancing the 
third version number.  We will keep
older versions available in [[][a 

* Future Changes in Administrative Structure
:CUSTOM_ID: future-changes

Changes in the GNU Project administrative structure are decided on by
the Chief GNUisance after starting consultations with GNU
contributors, usually on appropriate GNU Project discussion lists.
The aim of these consultations is to consider possible alternatives
and anticipate what good and bad effects they would have, so as to
make a wise decision.

To report changes that are adopted, we will update this document, both
[[][the Org version]] and 
[[][the HTML version]], advancing the 
first and/or
second version number.  We will keep older versions available in 

reply via email to

[Prev in Thread] Current Thread [Next in Thread]