[Piuparts-devel] correctly pass --extra-package debs to piuparts
Andreas Beckmann
anbe at debian.org
Sun Aug 5 15:08:31 BST 2018
On 2018-08-05 14:53, Johannes Schauer wrote:
> Hi Andreas,
>
> thanks for your quick reply!
>
> Quoting Andreas Beckmann (2018-08-05 14:34:11)
>> On 2018-08-05 13:57, Johannes Schauer wrote:
>>> Unfortunately, I see no easy way to achieve the same with piuparts. How does
>>> one pass extra packages to piuparts? --extra-old-packages seems to be the wrong
>>> choice. Is the only way to do this by creating a new apt repository with all
>>> additional .deb packages and pass that to piuparts via --extra-repo?
>> Yes. That's the only way to make them available to apt. If you would
>> give optional .deb files to piuparts, we would just copy them, make a
>> repo locally and use that.
>
> 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)
>> 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]
as does piuparts if you just give a plain path:
piuparts ... --bindmount /tmp/my-repo --extra-repo /tmp/my-repo
How do you call piuparts anyway?
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.
Which reminds me of https://bugs.debian.org/766543
Andreas
More information about the Piuparts-devel
mailing list