Project Approval at Savannah
About project reviews
Savannah is a place to emphasize free software values, especially the non-obvious/non-technical ones. We want you to understand them and follow a few good practices for your project.
The official requirements list is at https://savannah.gnu.org/register/requirements.php. This page explains the points in more details.
Savannah admins: we also have concise versions of these answers, ready for copy/paste, at http://cvs.sv.gnu.org/viewvc/*checkout*/administration/infra/elisp/savannah.el?root=administration
Check-list
Here is a compliance check-list, and links to further explanations.
Read them and follow them to get your project approved quickly :).
- Make sure your project runs primarily on a completely free OS.
- Use a license compatible with the GNU GPL.
- Write a half-page technical description of your project: its goal, its programming language and its depencies (with URIsToTheDependencies).
- Don't forget to give a pointer to the source code.
- Apply valid copyright and license notices (ValidNotices), and include a copy of the license you chose.
- Refer to the GNU/Linux operating system and reserve the name "Linux" for referring specifically to the kernel that Linus wrote. More info: http://www.gnu.org/gnu/gnu-linux-faq.html.
- Talk about the free software movement, which we support, and not open source, which we don't. Do not use "Open" in your project name. More info: http://www.gnu.org/philosophy/open-source-misses-the-point.html.
The review we do can be long and tedious for both the submitter and the reviewer. Be sure to follow these steps; if your project doesn't comply with our requirements, we will ask you to make changes to your project or register again. This ensure a consistent level of quality and policy for projects hosted at Savannah.
General principles
- WhyLegalChecksBeforeRelease: solid legal basis are one of free software's strengths.
- RequirementThreshold: will we nitpick? Yes! But here are some limits.
- FileFormats
- ReverseEngineering
Related FAQ
subtopics:
- AboutTranslations
- ApprovingSubmission
- FileFormats
- GnuOrgTranslationTeams
- [HowToBecomeASavannahHacker]]
-
- DocumentationFormats
- DocumentationNotices
- DualLicensing
- GnuGplTwoOrLater
- [HowKnowIfALicenseIsFreeIn3Points]]
- ProprietaryUseOfFreeSoftware
- ValidNotices
- ReverseEngineering
- URIsToTheDependencies
- UpstreamCollaboration
- WhyLegalChecksBeforeRelease
For Administrators
Pinged message
If after one week, the submitter of a new project for approval didn't answer, the admin need to send a pinged message. The pinged message can be founded in [savannah.el|vim] as sv-pinged() under emacs and SV_pinged() under vim.
Zombie projects
When projects are removed from the tracker but not from the database, they stay there and increase the "pending projects" frontpage statistics. To find such projects, a good heuristic is:
SELECT groups.group_id, unix_group_name, groups.status, task.bug_id, task.status_id, groups.group_name FROM groups, task WHERE groups.status='P' AND task.group_id=5802 AND task.status_id=3 AND task.category_id=1 AND task.details LIKE CONCAT("%* System Name: *", groups.unix_group_name, "*%") AND (SELECT count(*) FROM task WHERE task.group_id=5802 AND task.status_id=1 AND task.category_id=1 AND task.details LIKE CONCAT("%* System Name: *", groups.unix_group_name, "*%")) = 0 GROUP BY groups.group_id ORDER BY bug_id;
DELETE groups FROM groups, task WHERE groups.status='P' AND task.group_id=5802 AND task.status_id=3 AND task.category_id=1 AND task.details LIKE CONCAT("%* System Name: *", groups.unix_group_name, "*%") AND (SELECT count(*) FROM task WHERE task.group_id=5802 AND task.status_id=1 AND task.category_id=1 AND task.details LIKE CONCAT("%* System Name: *", groups.unix_group_name, "*%")) = 0;
It only fails if the group name was changed after the submission, or if a user maliciously fakes a submission item.
A better solution would be to add a 'task_id' field in the 'groups' table, filled in at registration time.