Package and source naming, package building and lintian fixes document proposal

After working with package creation for a while now, the following document is proposed containing:

  • Package naming
  • Source naming
  • Package building
  • Lintian overrides/devuan-lintian-profile

A document like this would be very useful for potential Devuan developers and might be a good complement to d1h, which automates the task of package building an maintenance.

Source: https://lists.dyne.org/lurker/message/20171115.163800.3cd99234.en.html

<devuan version> = devuanX.Y

Releases: X = {1 = Jessie}, {2 = ASCII}, {3 = Beowulf},…, {exp = experimental}

Versions: .Y = {empty}, {.1}, {.2}, …

Packages forked from Debian:

  <source package> (<debian version>+<devuan version>)

Devuan packages with an upstream (not forked from Debian):

  <source package> (<upstream version>+<devuan version>)

Devuan native packages:

  <source package> (<package name>+<devuan version>)

<ext> = {gz}, {xz}, {bz2}, {…}

Packages forked from Debian:

  <source package>_<upstream version>.orig.tar.<ext>
  <source package>_<debian version>>+<devuan version>.debian.tar.<ext>
  <source package>_<debian version>+<devuan version>.dsc

Devuan packages with an upstream:

  <source package>_<upstream version>.orig.tar.<ext>
  <source package>+<devuan version>.debian.tar.<ext>
  <source package>+<devuan version>.dsc

Devuan native packages:

  <source package>_<upstream version>.orig.tar.<ext>

Not yet completed: <TBW>

debian/source/format: Z = 3.0 (quilt), 3.0 (native), 3.0 (git)

<architecture> W = alpha, amd64, arm64, armel, armhf, hppa, i386, ia64, mips, mipsel, powerpc, ppc64el, s390x, sparc

  ^^ (are all these really supported?) ^^

gbp.conf content:

  <TBW>

Packages forked from Debian:

  <TBW>

Devuan packages with an upstream:

  <TBW>

Devuan native packages:

  a) <source package>_<debian version>.tar.<ext> provided: Z = 3.0 (native)
  b) transitional packages (contains only a debian directory) Z = 3.0 (git)
  gbp buildpackage --git-no-create-orig 2>&1 | tee ../gbp-buildpackage-<source package><devuan version>.log

Creates:

  <source package>_<upstream version>+<devuan version>.git
  <source package>_<upstream version>+<devuan version>.dsc
  <source package>_<upstream version>+<devuan version>_<architecture>.changes
  <source package>_<upstream version>+<devuan version>_<architecture>.build
  <source package>_<upstream version>+<devuan version>_<architecture>.buildinfo
  <binary package>_<upstream version>+<devuan version>.deb
  <binary package>_<upstream version>+<devuan version>.udeb

Notes:

  • Using <…>-<devuan version> is not a good idea, since lintian complains:
  W: <source package> source: native-package-with-dash-version
  W. <source package> maintainer-upload-has-incorrect-version-number

Lintian warnings and errors can be suppressed by adding

  debian/source/lintian-overrides

A better method would be to add one or more <TBW> module(s) to

  devuan-lintian-profile

Packages forked from Debian:

  <TBW>

Devuan packages with an upstream:

  <TBW>

Devuan native packages:

  a) <TBW>
  b) transitional packages

Unfortunately format 3.0 (git) is not officially supported.

  lintian <source package>_<upstream version>+<devuan version>.dsc

Causes a lintian error:

  E: <source package> source: unsupported-source-format 3.0 (git)

and warning:

  W: <source package> source: diff-contains-git-control-dir .git

Fixed by adding debian/source/lintian-overrides

  <source package> source: unsupported-source-format
  <source package> source: diff-contains-git-control-dir