[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Build Debian packages for multiple architectures



Hello, debian-mentors

I'm sorry in advance if this is the wrong list to ask.

TL;DR: how to build and upload properly packages that provide both
arch=all and arch=any binary packages without conflicts like "file
already exists with different checksum" during upload stage?

Some time ago I've tried to manage my own debian repository with
reprepro. I had almost no problems when repository contained packages
with arch 'any'. Usually I just build packages on my machine and
upload the results to the repository with dupload tool.

However when there appeared packages that should be built for any
supported architecture, some questions raised. It is certain that I
still could build amd64 and i386 packages on my own machine. I
realized I could upload source packages separately from the binary
ones that simplified things a little. For example, if source package
provides one binary package with arch 'any' and another one with
'all', I could upload it to the repository in two steps:

1) upload source package ond binary packages for one arch (this upload
seems to include the packages with 'all' arch as well)
2) upload binary packages for all other architectures

Everything's good in theory, but when I actually did this, all
binary-only uploads included both arch-specific and arch-independent
packages. This led to conflicts during upload phase because the
repository already included binary packages with arch=all, but with
different checksums. I have tried all sorts of dpkg-buildpackage flags
with no success. After all these efforts I decided to ask you.

So, the question is: how should I build packages for multiple
architectures without such problems?

Thank you.

--
Best regards,
Andrii Senkovych


Reply to: