Debian package naming

Yves-Alexis Perez corsac at debian.org
Fri Aug 1 06:16:06 CDT 2008


On Fri, Aug 01, 2008 at 05:22:25PM +0700, Fajar A. Nugraha wrote:
> That's the part that got me confused :)
> For example, rpmforge has dkms-fuse-2.7.3-1.nodist.rf, which puts fuse  
> module version 2.7.3-1.nodist.rf (as shown on dkms status). When I say  
> "dkms RPM package contain the module source, not compiled binary", I was  
> actually referring to those packages.
>
> module-assistant build binary-only module packages, something like
> "eeepc-acpi-modules-2.6.24-19-generic_1.0-1+2.6.24-19.36_all.deb"
> which is very small (since it contaions only the .ko and some  
> documentation), and can be installed on another ubuntu machine without  
> the need of dkms, build tools, or module-assistant installed. I assumed  
> this was what Yves-Alexis wanted.

Yes, I thought the debs made from dkms only contained binary modules,
while in fact they contains a dkms archive which in turns contains
modules sources _and_ modules binaries. But you still need dkms
installed on the box before.

>
> Back to the topic. "dkms mkrpm" is supposed to create rpm package for  
> the specific module version, right? On redhat/centos, "dkms mkrpm -m  
> fuse -v 2.7.3-1.nodist.rf" results in
>
> "
> Error! There was a problem creating your rpm.
> error: line 11: Illegal char '-' in version: Version:    2.7.3-1.nodist.rf
> "
>
> So as a suggestion to Mario, since dkms RPMs (at least the ones from rf)  
> includes their release number in module version, it might be wise to  
> also add a patch that removes those release string when "dkms mkrpm" is  
> issued.

Ok so both deb and rpm have restrictions on characters used, one on
package name, the other on package version. Maybe it's worth adding some
checks/replacement which would be ok in both cases.

For debs:
* name = [a-z],[0-9],+,-,.
* version = [epoch:]upstream_version[-debian_revision]
  - epoch = [0-9]
  - upstream_version = [[:alpha:]],.,+,-,:,~ and should start by a digit.
    If there's no epoch, upstream_version can't contain :
  - debian_revision = [[:alpha::]],+,.,~
    If there's no debian revision (native package, which should not be
    the case for modules) then upstream_version can't contain -

In all characteres above, the ',' is the separator, it's not an allowed
character :)

You can find more info there: 
http://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Package
http://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Version

HTH,
-- 
Yves-Alexis



More information about the DKMS-devel mailing list