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, the debian/
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 via dput
. (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
and pdebuilder
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
or pdebuilder
to login to the chroot. Then, you will have to manually install dh-autoreconf
into the chroot, usually with apt-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
or pdebuilder
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)
pbuilder
to make clean builds without installing anything on my system. If I just executedebuild -S
, it fails with error message with unsatisfied dependencies.pbuilder
hadpdebuild
command, so I thought it is used to build source packages with tools from chroot. – anatoly techtonik Dec 28 '13 at 07:27debuild -S
indicates that you've got a special package that requires additional debhelper stuff, and usually requiring some things to be pre-built and uploaded for the builders to work with it, and neitherpdebuilder
norpbuilder
won't be able to automatically handle that, as a case in point, your attempts.) – Thomas Ward Dec 28 '13 at 07:36dh-autoreconf
. I really hoped thatpbuilder
is the tool not only to run chroot, but also to resolve dependencies. – anatoly techtonik Dec 28 '13 at 07:59dh-autoreconf
but the chroot is the same as the standarddebuild -S
to that extent, if it has certain debhelper dependencies those have to be installed either by yourself to your system OR installed manually into the chroot. Ultimately, whilepdebuilder
andpbuilder
are smart, they aren't smart enough to determine what debhelper dependencies that need to be installed (they're smart to read the build-deps lines, in debian/control, but that doesn't dictate the debhelper dependencies.) – Thomas Ward Dec 28 '13 at 08:01pbuilder
andpdebuilder
do, as far as I can tell, is run thedebuild
ordebuild -S
inside the chroot with all the build deps, but that's pretty identical to me doingdebuild
(ordebuild -S
after debhelper stuff is installed) after installing the build-deps myself. You have to read through the logs either way to figure out WHY your stuff failed, but ultimately, the end result is the same either way, you still need to install debhelper dependencies by hand beforehand, so the source package has all the stuff in it that it needs to build. – Thomas Ward Dec 28 '13 at 08:05nginx
team's PPAs, I keep that pretty up to date except when I forget, and I have to adapt to these kinds of things all the time, I apologize for missing your first question on this issue, however I'm glad I could at least catch you on this one to give you some help. – Thomas Ward Dec 28 '13 at 08:13pbuilder can not build source packages by automatically fetching dependencies for them
is good. I guess it is impossible to provide prooflink. – anatoly techtonik Dec 28 '13 at 12:25