ForUbuntuDevelopers

Differences between revisions 6 and 7
Revision 6 as of 2009-08-29 00:38:20
Size: 11170
Editor: static-72-81-252-22
Comment: Fix link to Debian/PythonModulesTeam broken in the last wiki reorg (one reason not to do wiki reorgs).
Revision 7 as of 2009-08-29 00:46:20
Size: 11174
Editor: static-72-81-252-22
Comment:
Deletions are marked like this. Additions are marked like this.
Line 93: Line 93:
For Python packages, there is a detailed how-to: Debian/PythonModulesTeam For Python packages, there is a detailed how-to: [[Debian/PythonModulesTeam]]

Ubuntu benefits from a strong Debian, and Debian benefits from a strong Ubuntu. - MarkShuttleworth

Every Debian developer is also an Ubuntu developer, because one way to contribute to Ubuntu is to contribute to Debian. - MarkShuttleworth

We incorporate Debian changes regularly, because that introduces the latest work, the latest upstream code, and the newest packaging efforts from a huge and competent open source community. Without Debian, Ubuntu would not be possible. - MarkShuttleworth

This page is for Ubuntu developers who are thinking about contributing to Debian. It gives the current "best practice" with regard to collaboration with another distribution. This is not a requirement, but it can make everybody's life much easier to keep other distributions and upstream on the same page.

Why should I care about Debian?

  • Ubuntu is Debian-based.

  • Debian supports more hardware architectures, so if you want to run something like Ubuntu in your (not so) new mips machine it will be really useful.

  • Debian project has more volunteers than Ubuntu. Ubuntu community as a whole can benefit from it (and it's, right now).
  • Debian project is heavily committed to free software, its free software guidelines and legal mailing list are well recognized by the community.

What's stable, testing, unstable?

The “stable” distribution contains the latest officially released distribution of Debian. The “testing” distribution contains packages that haven't been accepted into a “stable” release yet, but they are in the queue for that. The main advantage of using this distribution is that it has more recent versions of software. The “unstable” (codenamed sid) distribution is where active development of Debian occurs. Generally, this distribution is run by developers and those who like to live on the edge.

More information about Debian releases, how "testing" becomes "stable" and more can be found at: Debian releases page.

I'm a Ubuntu user and I want to install Debian

The Debian project and contributors are developing d-i, the new Debian installer. It is in use by Debian and Ubuntu, with minor changes. In other words, if you feel comfortable installing Ubuntu you will have the same feel installing Debian.

Note that Ubuntu (by default) installs a full desktop enviroment called GNOME and other applications for desktop use. Debian installation procedure will ask you which sets of packages you want to install.

You can download latest Debian release to install at: Debian "lenny" Installation Information page.

Why contribute to another distribution ?

The first thing to remember is that Ubuntu has a particularly close relationship with Debian. We regularly take updates from Debian, not just at the start of the Ubuntu project, but dynamically. Thus, packages that are newer in Debian are merged or synced in Ubuntu. It would be impossible to manage universe without merging from Debian, since Ubuntu has (and might always have) far less manpower than Debian.

You should aim at improving Free Software in general (or the whole world Smile :) ), not just your own distribution. Contributing to upstream is the best way to do so, but contributing to Debian is also a good option. It makes everybody's life more simple, since Ubuntu syncs its packages from Debian. Having less Ubuntu-specific changes means less work to do.

Forwarding bug reports

When you find or fix a bug in Ubuntu, check if the bug applies to Debian too. If so, report a bug in the Debian Bugtracking System (you don't need to run Debian to do so). You don't need to run Debian to deal with bugs in Debian : reporting and adding comments to bugs can be made by email as described on this page.

Some things to keep in mind:

  • Always mention that you are running Ubuntu, not Debian.
  • Forwarding bugs that might apply to Debian should be done with care. If you haven't checked throughly that Debian was affected, don't file the bug or mention it in the bug report. If unsure, ask a Debian user to try to reproduce it, or set up a Debian chroot on your computer (see DebootstrapChroot).

  • Think about the severity you'll set carefully. People usually don't like to see "hugely important bugs" which are actually minor glitches or cosmetic issues. Bug severities in Debian are documented here. Step down if you are not sure.

  • Read and apply How to Report Bugs Effectively.

Getting new software in Debian

Why would I get my work in Debian ?

You learned how to package, went through REVU, and you now have your own little package in Ubuntu ? Congratulations ! But now, you should really try to get your package into Debian.

You're probably thinking that as an Ubuntu user, you don't really mind having your work in Debian. Well let us take a look closer to understand why you want your work to be in Debian.

  • Debian has a lot of users who will be interested in your package. Your package will get good press (Debian Weekly News for example), and also good bug reports from the big Debian user community.
  • If you don't, a Debian developer might start packaging the same software without noticing that you already packaged it. Duplicating efforts sucks, and it will suck even more when his package will be uploaded to Debian: should Ubuntu sync it or use your package ? (To prevent unnecessary divergence, it will probably be synced, overriding your work).
  • Contributing your work to Debian is probably what you should do, ethically speaking.

How do I do it ?

Depending on your final goal, and the time you want to invest in this, you have several options.

Important note: The following options are in no way part of the Ubuntu policy. They are merely advice to help improve the whole system.

Required packaging changes

Debian has some different policies for packages. As a result, in order to get your package added to the Debian repositories, certain changes will need to be made.

  • debian/changelog
    • The version should not include the -0ubuntu1 part at the end. Instead, it should end in -1. The -X part is the Debian revision number. When the application was packaged for Ubuntu, it was not present in the Debian repositories. As a result, this number was 0. However, now that it is going to be added in Debian, it should be a 1. The ubuntu1 part was the Ubuntu revision. Since this package is for Debian, the ubuntu revision can be completely omitted.
    • Instead of targeting the current Ubuntu Development release, you will need to target 'unstable'.
  • debian/control
    • In Debian, they do not have a certain team that is in charge of maintaining all of the packages. Instead, each package has its own maintainer. Since you are the one who packaged the application, when it gets added to the repositories, you will be the maintainer. As a result, the Maintainer field should contain your information.
    • The XSBC-Original-Maintainer field is only used in Ubuntu. It is not needed in Debian, and should be removed.

Notifying Debian that your package exists

If you just want to notify Debian that a package for this software is already available, file an RFP (Request For Package). In the RFP, mention that you packaged the software for Ubuntu, and add a link to the package source.

  • Some day (no guarantees Smile :) ), a Debian developer will adopt your package, become its maintainer, and upload it to Debian. It will then go back to Ubuntu through normal merges (see UbuntuDevelopment/Merging).

  • Check out the Debian Mentoring FAQ to find out how to get your package included in Debian too.

Maintain the package in Debian yourself

If you would like to maintain the package inside Debian yourself (you don't need to be a Debian Developer to do that, and you will learn a lot of things by doing that) :

  • file an ITP (Intent To Package). In the ITP, mention that you packaged the software for Ubuntu, and add a link to the package source.

  • Find a sponsor (whose role will be to review your package again, and upload it to Debian).
    • Read the debian-mentors FAQ to learn more about the process.

    • There is an IRC channel dedicated to this particular issue on OFTC #debian-ubuntu , you can also try #debian-mentors
    • Your package will get back into Ubuntu through normal merges.
  • Learn how to use pbuilder. You'll need to build packages against Debian unstable. See the PbuilderHowto.

For Python packages, there is a detailed how-to: Debian/PythonModulesTeam

There is also a Perl packaging team that operates similarly to the Python team. Instead of using mentors, your should prepare your package in the Perl group's svn repo and then ask a DD member of the Perl group to review them from _there_ and upload them. The DD that uploads the package will also tag the release in the svn repository. In the Debian Perl Group, the "Maintainer:" field is always set to the DPG itself (not any individual). Those who work on the package add themselves to the "Uploaders:" field. Here is a checklist of steps in a release process using svn-buildpackage to build debian packages.

The role of REVU in all this

You might be confused by the role of REVU in all this. REVU's role is to make it very easy to submit and review packages, thus improving their packages in a very fast way. REVU is more and more recognized by Debian (even the Debian-mentors FAQ advertises it !). Keep on using REVU ! Smile :-)

The process of filing RFPs and ITPs is described on the Debian WNPP page.

Killing the troll

Some uninformed people still think that Debian and Ubuntu are opponents, that Debian Developers and Ubuntu Developers hate each other, etc. Explain to them how things really work. Reading To Fork or Not To Fork: Lessons From Ubuntu and Debian might help to understand the details.


See Also

Debian/ForUbuntuDevelopers (last edited 2021-03-16 03:06:09 by roguescholar)