emdebcheck

Langue: en

Version: 2008-11-03 (debian - 07/07/09)

Section: 1 (Commandes utilisateur)

Name

emdebcheck - Check Emdebian builds with edos-debcheck before upload
  Copyright (C) 2008  Neil Williams <codehelp@debian.org>
 
  This package is free software; you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
  the Free Software Foundation; either version 3 of the License, or
  (at your option) any later version.
 
  This program is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU General Public License for more details.
 
  You should have received a copy of the GNU General Public License
  along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 

Usage

  emdebcheck [-v|--verbose] [-q|--quiet] [-a|--arch ARCH] FILENAME
  emdebcheck -?|-h|--help|--version
 
 

Options

  -a|--arch ARCH
 
 

Set the architecture (default: defined by dpkg-cross)

  -v|--verbose
 Make the output more verbose. Repeat for more verbosity. Verbosity
 levels higher than 3 cause the temporary Packages file to be retained
 and also produce many megabytes of debug output. (The name of the
 temporary file is included at the start of the debug output.)
 
  -q|--quiet
 
 

Make the output quieter.

Description

emdebcheck is similar to the debcheck routines in Debian, except this is run before the upload is made.

Whilst native packages can (more or less) rely on pbuilder to ensure that dependencies are actually available prior to the upload, cross builds use build dependencies from Debian but get uploaded to a separate repository so there is no guarantee that the dependencies generated using -cross packages during the build are actually present in the Emdebian repository, even when the package is cross built within a chroot.

emdebcheck attempts to cover this gap by parsing the dependency information from the built package, inserting this data into a copy of the apt cache for the Emdebian target repository (replacing any data from the current package) and runs the modified cache data against 'edos-debcheck'.

Note that some packages will always be broken - particularly -dev packages. Errors are output to the emrecent error logfile - fix the issue(s) and remove the error log before trying to upload this package using emrecent.

Use in pipes

emdebcheck can also read filenames from STDIN, use:
 emdebcheck - at the end of your pipe.

You can parse a .changes with the 'dcmd' tool from devscripts:
 dcmd ls -1 /$path/foo_vers_arm.changes | grep '.deb$' \
 | grep -v '\-dev_' | sed 'N;s/\n/ /' | emdebcheck -

Note the removal of the -dev package, depending on the source package, you may also want to remove other packages from the list output by dcmd.

When emdebcheck is passed more than one file these must all be from the same source package - i.e. scripts can parse the .changes file, identify the .deb packages and pass them all to emdebcheck. This is supported so that a binary like bzip2 can be checked alongside the library that is built from the same source (libbz2-1.0) as both will be uploaded together, e.g. by emrecent. emrecent also removes -dev packages that are always likely to fail.

edos-debcheck now also supports edos-builddebcheck - if this functionality would be useful to you in emdebcheck, please file a wishlist bug against emdebian-tools. Note that supporting -cross packages in such a check is non-trivial.