8

It's all very confusing. There are different examples out there, for e.g.:

<package-name>_<epoch>:<upstream-version>-<debian.version>-<architecture>.deb

source: debian package file names

Is section 5.6.12 Version or the Debian Policy Manual also related to the actual package filename too? Or only to the fields in the control file?

In this wiki topic about repository formats it doesn't really say anything about conventions, same in the developers best practices guide.

Maybe I'm just looking for the wrong thing, please help me and tell me where to find the Debian package name conventions. I'm especially curious where to put the Debian codename. I want to do something like this:

<package-name>_<version>.<revision>-<debiancodename>_<architecture>.deb

where <debiancodename> is just squeeze or wheezy.

  • The section of the policy only refers to the changes file. Just rename the deb and adjust the .changes file – Ulrich Dangel Oct 23 '13 at 18:58
  • means there are no conventions about the filenames for .deb files? – Preexo Oct 25 '13 at 14:05
  • 1
    @prexo there are but there is no formal definition. And if you want to adjust the filename just rename the deb and adjust the changes file. If you don't do an upload it would be sufficient to just rename the deb file – Ulrich Dangel Oct 25 '13 at 14:52
  • thanks! yes I'm not uploading so problem is kinda solved ;) make an answer with that and maybe about how strict the conventions are and I'll accept it as an answer :) – Preexo Oct 31 '13 at 10:14
8

My understanding is that you want to distribute/deploy a package to multiple Debian based distributions.

In the Debian/Ubuntu world, you should not provide individual .deb file to download and install. Instead you should provide an APT repository. (in the Fedora/Red Hat/CentOS world I would make a similar advice to provide a YUM repository). Not only does is solves issue of how to name deb file, but repository is an effective way to provide newer version of your package, including bug-fix and security updates. Creating an APT repository is beyond the purpose of this page/question, just search for "how to setup an apt repository"

Now back to your question: "package naming convention":

When you generate the package with dpkg-buildpackage, the package will be named in a standard way. Quoting dpkg-name manpage:

A full package name consists of package_version_architecture.package-type as specified in the control file of the package.

package_version_architecture.package-type

The Debian Policy is the right place to know the syntax of the control files: name (for both Source and binary packages), version, architecture, package-type.

There is no provision to state the distribution, because this is not how the way thing goes.

If you need to compile the same version of a package for multiple distributions, you will change the version field (in the debian/changelog and debian/control file). Some people use the distribution name in the version field. for example openssl:

0.9.8o-4squeeze14 
1.0.1e-2+deb7u14
1.0.1k-1 

If that's what you want to do, make sure to read debian-policy about debian_revision in version.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.