#752276 dose-builddebcheck: should work on .dsc files

Package:
dose-builddebcheck
Source:
dose3
Description:
Checks whether build-dependencies can be satisfied
Submitter:
Vagrant Cascadian
Date:
2014-07-28 09:54:17 UTC
Severity:
wishlist
#752276#5
Date:
2014-06-22 02:11:17 UTC
From:
To:
It would be nice if --checkonly supported the full syntax you're likely to
find in a Build-Depends line in a .dsc file, including things such as
architecture [arch], or version comparisons (>= x.y.z):

  $ dose-debcheck --failures --explain --checkonly "debhelper, cpio, kmod, gcc-4.8 (>= 4.8.2-21) [powerpc powerpc64]" /var/lib/apt/lists/*amd64*Packages
  usage: dose-debcheck [options]

  dose-debcheck: option '--checkonly': invalid vpackage list 'debhelper, cpio, kmod, gcc-4.8 (>= 4.8.2-21) [powerpc powerpc64]'

It seems to treat (>= x.y.z) as (= x.y.z):

  dose-debcheck --failures --explain --checkonly "debhelper, cpio, kmod, gcc-4.8 (>= 4.8.2-21)" /var/lib/apt/lists/*amd64*Packages
  (W)Debcudf: Package (gcc-4.8,4.8.2-21) does not have an associated cudf version
  The applications raised this exception : Not_found

There is a newer version of gcc-4.8 available.

Thanks for considering it, and thanks for maintaining dose-distcheck!


live well,
  vagrant

#752276#10
Date:
2014-06-23 07:50:43 UTC
From:
To:
Hi Vagrant,

AFAIK, only (=x.y.z) version comparisons are supported in the --check-only
option.

[arch] specifiers would be misleading here, as one would it expect to mean
"check that package in that version on that arch", which is not the meaning
of [arch] in a dsc file. Rather, if package p1 has a build-dependency on
package p2[arch], this means that when you compile package p1 on [arch]
then you need p2. It does, a priori, not mean that p2 has to be of
architecture arch. Furthermore, build-depencies may contain alternatives
(even though they are rarely used in build-dependencies), and they do not
make sense in the context of the --check-only option.

It is not normal that an exception is raised, this seems to be a bug.

If you wish to check build-dependencies you should rather use
dose-builddebcheck. You can "almost" run it on the .dsc file itself -
you just have to change in the dsc file the "Source: p" into "Package: p".
We probably should allow dose-debbuildcheck to support this syntax.

Does dose-builddebcheck the job? If not, could you please explain your
usecase?

Cheers -Ralf.

#752276#15
Date:
2014-07-17 23:30:36 UTC
From:
To:
only just now spent the time figuring out how to use it. With your suggestiong
to change the Source field to Package, it works well for what I had intended:

  dose-builddebcheck --deb-native-arch=amd64 /var/lib/apt/lists/ftp.us.debian.org_debian_dists_sid_main_binary-amd64_Packages test.dsc

  native-architecture: amd64
  background-packages: 42679
  foreground-packages: 1
  broken-packages: 0

with an exit code of 0.

test.dsc contains:

  Format: 3.0 (native)
  Package: test
  Binary: test
  Architecture: any
  Version: 0.0.1
  Maintainer: Vagrant Cascadian <vagrant@debian.org>
  Standards-Version: 3.9.5
  Build-Depends: debhelper (>= 9), bash, zsh
  Package-List:
   test deb devel optional arch=any
  Checksums-Sha1:
   708dbc4f5d23c44c6483bc2d3b69dc74768dfb7c 487676 test_0.0.1.tar.xz
  Checksums-Sha256:
   4877fe3274b48fb6ed6ab5ebe34194e2a19054ca039769f313d0ac772d7f4172 487676 test_0.0.1.tar.xz
  Files:
   16fb69e219d3fbe046ee247e1bd19379 487676 test_0.0.1.tar.xz

Adding a non-existant package or version constraint to Build-Depends reports a
broken package, with an exit code of 1, so seems to work.

Ideally it could treat Source: entries the way it treats Package: entries,
and then it would work on .dsc files unmodified. If this should be default
behavior, or require a commandline option doesn't matter much to me.

Thanks!


live well,
  vagrant