I am trying to use pbuilder
to upload to PPA. Package builds ok with the command:
sudo pbuilder build <package>_<version>.dsc
But upload fails with error:
Source/binary (i.e. mixed) uploads are not allowed.
It is said that I need to use pdebuild
to build source package
, but pdebuild
doesn't resolve build dependencies. How can I build this package, so it can be finally uploaded? I don't want to install dependencies manually.
Best Answer
The answer is that you don't.
pbuilder
takes the source package and builds binaries. It also can take the source code without a source package built and create the binaries that you would either host yourself or add to your own debian repository systems to host on your own.That's not what you need for a PPA.
What you want to do, and what I strongly recommend, is that you follow traditional packaging procedures, and run
debuild -S
on the code, with the directory for the package there, containing the source code, thedebian/
folder, and everything else.Then, after you've built the source package by
debuild -S
, you can then upload the created.changes
file in one directory above the source directory to the PPA viadput
. (this step is referred to on Launchpad's PPA Uploading help docs).You can in theory use
pdebuilder
to keep your system clean and build inside a chroot, but read on for my statements on this, as to why it failed previously for you.Per the comments, you have correctly identified that debhelper is unable to find the
autoreconf
plugin.Also as I said in my comments on this answer,
pbuilder
andpdebuilder
are both not smart enough to determine the debhelper dependencies.To solve your issue so that your stuff can build, you will have to manually use
pbuilder
orpdebuilder
to login to the chroot. Then, you will have to manually installdh-autoreconf
into the chroot, usually withapt-get install dh-autoreconf
after you've logged into the chroot.Once you've done that, and saved the state of the chroot, you should be able to
pbuilder
orpdebuilder
your package.(However, I prefer traditionally working with packages, and I don't care if my build system is entirely clean or not, all I really build are source packages, and the debhelper plugins aren't going to clutter my system that badly)