[Piuparts-devel] Bug#886448: correctly pass --extra-package debs to piuparts

Johannes Schauer josch at debian.org
Sun Aug 5 17:06:38 BST 2018


Hi Andreas,

Quoting Andreas Beckmann (2018-08-05 16:08:31)
> > I would've expected that piuparts would support the latter. It would be more
> > convenient to the user if piuparts would take care of creating the repo than
> > the user having to do it themselves. That's also how sbuild and autopkgtest do
> > it when the user gives them extra debs. Neither of those two requires the user
> > to do the repo setup themselves.
> 
> copying all the debs is a waste, especially if you want to test a lot of
> packages all needing the same tree. (I assume you will test each package
> binary individually ..., and you will test install and upgrade scenarios)
> Doing just
>   (cd /path/to/repo && dpkg-scanpackages . > Packages)
> is cheap, and should be easily scriptable.
> (piuparts won't do it, because it will not modify arbitrary directory
> trees given as input to it)

indeed, piuparts should never change the contents of such a directory that it
is given on the command line.

But I still don't see how it's a waste. It's the same that sbuild, pbuilder and
autopkgtest do. At the beginning they copy the extra .debs that they are given
into a temporary location inside the chroot (or a location accessible by the
chroot), create the apt archive and then use it for the rest of the processing.
All this is only done *once* at the beginning of an sbuild, pbuilder or
autopkgtest invocation. Why can piuparts not do the same?

> 
> >> All you need to provide is a local directory with all the .debs and a
> >> Packages file in there. Does not need to be signed or have a Release file or
> >> anything fancy.
> > 
> > Oh? Does that mean that apt can now use a plain directory without a Release
> > file using a line like:
> > 
> > deb file:///directory/inside/schroot/ ./
> > 
> > I thought a Release file was required by apt? If I require using the above I
> > get the following when doing $(apt update):
> > 
> > E: The repository 'file:/home/josch/repository ./ Release' does not have a Release file.
> > 
> > So how does apt not require a Release file?
> Use with it with [trusted=yes]

Thanks!

> as does piuparts if you just give a plain path:
> 
> piuparts ... --bindmount /tmp/my-repo --extra-repo /tmp/my-repo

It is not documented in the man page, that piuparts also accepts a directory.
It says there, that it expects a string for apt's sources.list.

> How do you call piuparts anyway?

Like this:

sudo -- piuparts --schroot unstable-amd64-sbuild pkg_ver_arch.changes

> If this should be fixed in piuparts, then probably by adding some driver
> script that takes e.g. a bunch of .changes files as parameter, builds a repo
> of all the .debs and runs piuparts on each binary package, possibly multiple
> times.

Why does it need multiple .changes files for this? I don't have a .changes file
for the .deb I want to pass.

Thanks!

cheers, josch
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: signature
URL: <http://alioth-lists.debian.net/pipermail/piuparts-devel/attachments/20180805/b4b9b24d/attachment.sig>


More information about the Piuparts-devel mailing list