I'm making Ubuntu packages from the source code of a geology program. I can make deb packages on my PC, and also Launchpad is able to make binary packages for 32-bit OS.

I noticed a strange behavior of Launchpad. It makes both development (libfoo-dev) and shared library (libfoo) from the uploaded source code for i386 although it makes only binary package for amd64 from same code. Looking at i386 and amd64 build logs, I found that for amd64 debian/rules binary-arch is called instead of debian/rules binary. This causes my source not to generate a development package for amd64.

How can I solve this issue? Build logs and package sources are available in ppa:soroush-r/geopsy-deb in case you want to take a look.

  • Are you sure that you have Architecture: any at your debian/control file? – hytromo Sep 20 '12 at 20:08
  • @hakermania Yes. I looked at debian/control again. there is Architecture: any in both dev and lib packages and the Architecture field is empty in Source section. – sorush-r Sep 20 '12 at 20:13

Architecture independent packages (where Architecture: all is set in debian/control) are only build on one architecture, which is i386 for Ubuntu. Only the architecture depending packages are build on all other architectures. That's why debian/rules binary is called on i386, but debian/rules binary-arch on amd64, armhf, and powerpc.

You set Architecture: all for your -dev packages. This is correct if the -dev package is identical on every architecture. You will see that the .deb package will end with _all.deb instead of _amd64.deb or _i386.deb. The _all.deb will be build on i386, but also used on amd64.

You should change the architecture of the -dev package to Architecture: any in debian/control if you need different content for the amd64 -dev package. If the -dev package should have the identical content on amd64 than on i386, everything is working correctly and you shouldn't encounter a problem.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.