Below, I'm assuming that the source is open (e.g. Python scripts) which are therefore not bound to any architecture (e.g. amd64 or i386), hence "all". If you have some C source, you need to use
Architecture: amd64 i386 in your source
creating package ready for Launchpad
This will eventually will become a series of individual launchpad PPA packages.
What I prefer (but may not be able to achieve...) is to keep my packaging to a minimum - create a series of packages from a template and adjust the bare minimum (changelog etc + the tar file).
Launchpad only accepts source packages, so create a
rules that installs the files in the correct places. For convenience, I'll use debhelper. The directory with your files should look like:
debian/copyright file may also be useful for informing users about the licenses associated with the package. I don't think you need a
postinst script since you only need to extract some files.
compat should contain the debhelper compatilbility level, say "8". (please refer to the manual page of debhelper for more details)
changelog file can be edited with the
dch command, available from the
devscripts package. The
rules (using debhelper) should contain:
dh_install mypluginfolder/ /usr/share/rhythmbox/plugins
Make it executable using
chmod 755 debian/rules. A source package can be build using
debuild -S. Be sure to be in a directory named
<package-name>-<version>. More information about the
override_ behavior and the
dh command can be found on its manual page.
The Debian New Maintainers' Guide was very valuable for me to understand this, it's recommended reading. Example packaging can be found on https://github.com/Bumblebee-Project/bumblebee-ppa.
creating package from existing file tree
dpkg-deb -b can be used for creating tarballs from an existing file tree. First, start with creating a directory that should be named after your package. I'll assume you want to name it
myplugin, and put it in
/usr/share/rhythmbox/plugins/mypluginfolder. In addition, create the
DEBIAN directory (uppercase!) for storing package information:
mkdir -p myplugin/usr/share/rhythmbox/plugins/mypluginfolder
Copy over your files:
cp -r ~/mypluginsfolder myplugin/usr/share/rhythmbox/plugins
Next, you'll need a so-called control file located at
myplugin/DEBIAN/control which describes the package. The contents of such a file are put below:
Maintainer: You <[email protected]>
Description: plugins for Rhythmbox
Longer description here
As you can see, new paragraph are split by a single dot,
and lines have to be indented by one space.
Now, you can optionally verify the contents of your package. The next command lists the file and directory entries contents of
find myplugin -ls
If you're satisfied, build the package in the current directory:
dpkg-deb -b myplugin .
A new file will appear, named like
<package>_<version>_<architecture>.deb which is in this example
myplugin_1.0-1_all.deb. You can use the
less program to peek in the file. For example,