Reviewing

Differences between revisions 7 and 60 (spanning 53 versions)
Revision 7 as of 2006-01-25 14:19:57
Size: 6355
Editor: c529d3992
Comment:
Revision 60 as of 2008-08-06 16:32:37
Size: 115
Editor: localhost
Comment: converted to 1.6 markup
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
= Introduction: Who is this for? =

This guide is aimed at both reviewers/sponsors and packagers in Ubuntu and other Debian systems.
To the former I hope it can provide a rather strong document to base their reviews on. To the latter it is a base to check their own packages before submitting them.

attachment:IconsPage/IconWarning3.png This guide is not a policy in any way, but rather a proposal for efficient and complete reviews. The complete policy regarding Debian packages can be found [http://www.debian.org/doc/debian-policy/ here].


= Prerequisites =

It seems impossible to imagine reviewing a work without being able to do it. Therefore, knowing Debian packaging is a condition to understanding this guide. Please refer to the [http://www.debian.org/doc/manuals/maint-guide/index.en.html Debian New Maintainer's Guide] for an introduction to packaging techniques.


= Reviewing Debian packages =

== Pre-existence of the package ==

It is the duty of packagers to check if the program they are about to package has not already been packaged by someone else. However, the reviewer should also check it.


=== Is the package in Ubuntu? ===

The first thing to check is whether the package is or has been in Ubuntu.
Search for the presence of the package in any distribution on [http://packages.ubuntu.com].

==== If the package is in the Ubuntu archives: ====
 * Is it a package in main/restricted or in universe/multiverse?
 * if it is in the current development version, is it an update? Are we in [https://wiki.ubuntu.com/UpstreamVersionFreeze UVF]?
 * if it is not in the current development version, has it been nuked? Why? Refer to the bug tracking system on [http://launchpad.net/malone Malone] to find out why.

==== If the package is not in the Ubuntu archives ====
 * check if it is on [http://revu.tauware.de REVU].


=== Is the package in Debian? ===

If the package is not in Ubuntu, we should see if it is in Debian.
Search for the presence of the package in any distribution on [http://packages.debian.org].

==== If the package is in the Debian archives: ====
 * if it is in the current development version, should it be merged in Ubuntu? Are we in [https://wiki.ubuntu.com/UpstreamVersionFreeze UVF]?
 * if it is not in the current development version, has it been nuked? Why? Refer to the [http://bugs.debian.org Debian BTS] to find out why.

==== If the package is not in the Debian archives: ====
 * check if it is in the [http://ftp-master.debian.org/new.html NEW queue].
 * check if it is on [http://sponsors.debian.net/ Debian Sponsors].


=== Are there unofficial versions of the package? ===

Check other sources for the presence of the package.

 * The [http://apt-get.org AptGetOrg] website is a useful interface gathering lots of unofficial repositories for Debian packages.
 * Check the upstream website for a Debian package with sources.


== Tarball ==

The general rule for the tarball is to not modify the upstream tarball.


=== tar.gz tarballs ===

If it is a tar.gz (or tgz) tarball, then the tarball should be simply renamed into the orig.tar.gz. Compare the md5 sums of the upstream tarball and the orig.tar.gz one and check that they are identical. If they are not, there must be a good reason, fully explained in debian/changelog (e.g. the removal of the CVS/ dir).


=== non-tar.gz tarballs ===

If it is '''not''' a tar.gz tarball, then obviously it will have to be modified to make the orig.tar.gz tarball. You should still check for the indentity of the orig.tar.gz with the upstream tarball.

For example, if the upstream tarball is a tar.bz2, you can use the following (assuming app-version.tar.bz2 is the upstream tarball and app_version.orig.tar.gz is the orig.tar.gz):

{{{
tar -xvf app-version.tar.bz2 app-version-upstream/
tar -xvf app_version.orig.tar.gz app-version/
diff -ru app-version-upstream app-version
}}}

and check the diff has no output.

attachment:IconsPage/IconNote.png The easiest way to make a proper orig.tar.gz from a tar.bz2 tarball is:

{{{
bunzip2 app-version.tar.bz2
gzip -9 app-version.tar
mv app-version.tar.gz app_version.orig.tar.gz
}}}


== License ==

Licenses are a big issue on Debian systems. The policy regarding licenses is very strict, for good reasons.


=== Determining the license of the program ===

attachment:IconsPage/IconTip.png According to the FSF policy, the license of the program should be mentioned in '''each''' source file of the code. The COPYING file at the root of the upstream tarball has '''no value''' if the source files don't refer to it. In the case of a GPL license, the source files should contain the following layout as headers (see http://www.gnu.org/copyleft/gpl.html#SEC4 for more details) :
{{{
one line to give the program's name and an idea of what it does.
Copyright (C) yyyy name of author

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

 Also add information on how to contact you by electronic and paper mail.
 If the program is interactive, make it output a short notice like this when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details
type `show w'. This is free software, and you are welcome
to redistribute it under certain conditions; type `show c'
for details.
}}}




= Useful links =

 * [http://www.debian.org/doc/manuals/maint-guide/index.en.html Debian New Maintainer's Guide]
 * [http://www.debian.org/doc/debian-policy/ Debian Policy]
 * [http://ftp-master.debian.org/REJECT-FAQ.html Reject FAQ on the Debian ftp-master website]
#DEPRECATED
#REFRESH 2 http://wiki.ubuntu.com/UbuntuDevelopment/CodeReviews#Tips
----
[[CategoryMOTURedirect]]


CategoryMOTURedirect


["CategoryMOTURedirect"]

MOTU/Packages/Reviewing (last edited 2008-08-06 16:32:37 by localhost)