Tuesday, May 14, 2024
 Popular · Latest · Hot · Upcoming
4
rated 0 times [  4] [ 0]  / answers: 1 / hits: 1232  / 1 Year ago, sat, april 8, 2023, 12:03:40

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.


More From » ppa

 Answers
2

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)


[#27801] Sunday, April 9, 2023, 1 Year  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
cupwire

Total Points: 365
Total Questions: 126
Total Answers: 125

Location: Malaysia
Member since Thu, Feb 16, 2023
1 Year ago
;