Today I submitted a patch to wpa-supplicant package in Ubuntu (LP: #994739) and I learnt the process of pushing your changes to Launchpad and ask for them to be reviewed and merged. Ubuntu has a great documentation on how to fix bugs in this Wiki and packaging guide, just for future reference here are the steps I followed.
If you don’t have them, get the ubuntu-dev-tools, and bazar VCS:
$ sudo apt-get install bzr ubuntu-dev-tools $ bzr whoami \"Your Name <email@example.com>\" $ bzr launchpad-login poliva
Then get the source of the package you want to fix, and apply your patch:
$ bzr branch lp:ubuntu/precise/wpasupplicant $ cd wpasupplicant $ patch -p1 < /path/to/your.patch
Prepare to build the ubuntu package:
$ dpkg-source --commit $ dpkg-buildpackage -us -uc
In case dpkg-buildpackage complains about no upstream tarball found, you can obtain the .orig.tar.gz file with apt-get source and copy it to the base folder of your work.
$ apt-get source wpasupplicant
Finally, update the debian changelog and commit the change locally:
$ dch -i $ bzr commit
If all looks good, you can push the fix to launchpad and propose merging it into the official package:
bzr push lp:~<your-launchpad-id>/ubuntu/<release>/<package>/<branchname> bzr lp-open
The last command will open the Launchpad page of the remote branch in your browser. There click on the "(+) Propose for merging" link, to get the change reviewed by somebody and included in Ubuntu.