I'd like to create a PPA that hosts additional builds of binutils-cross, as Ubuntu and Debian only provide them for common architectures (there's no official ia64-cross build for Trusty or Wheezy, for example).

The only change that's necessary for this is to set the contents of the debian/target file to the target architecture (e.g. ia64-linux-gnu).

After setting up a launchpad account and signing the Code of Conduct, what steps do I need to publish this?

The normal steps I'd invoke to build the software locally are, for example:

apt-get source binutils
cd binutils-*
export DEB_TARGET_ARCH=ia64-linux-gnu
echo ia64-linux-gnu > debian/target
dpkg-buildpackage -us -uc

I'm completely new to PPA and Launchpad, so I apologize if this is a silly question.


Note that I am not asking how to build a mips or any foreign-architecture binary on Launchpad. Binaries emitted in this manner are i386 or x86_64 binaries, which themselves can assemble/disassemble/etc for foreign architectures.

This is to build the mips equivalent of the binutils-aarch64-linux-gnu package.

$ dpkg -S $(which mips-linux-gnu-as)
binutils-mips-linux-gnu: /usr/bin/mips-linux-gnu-as
$ file $(which mips-linux-gnu-as)
/usr/bin/mips-linux-gnu-as: ELF 64-bit LSB  executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=44e6366aeea6fb2b12b7e39aec2394fef86c642c, stripped
$ uname -a
Linux ubuntu 3.13.0-35-generic #62-Ubuntu SMP Fri Aug 15 01:58:42 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
$ echo nop | mips-linux-gnu-as -
$ file a.out
a.out: ELF 32-bit MSB  relocatable, MIPS, MIPS-I version 1 (SYSV), not stripped
  • @ThomasW. i386 & amd64 are it normally for builds, arm can be enabled upon request. – Stephen Michael Kellat Oct 8 '14 at 20:08

To do this kind of thing you would normally just modify the source package locally in the way that you desire, tweak its version and/or name, and upload that to your PPA. You can achieve the environment variable change by setting it in debian/rules.

The documentation tree at https://help.launchpad.net/Packaging/PPA answers a number of common questions in this area.

I would suggest looking into the existing binutils-*-cross source packages in Ubuntu (e.g. binutils-arm64-cross) as a model for this, though. Those do it by build-depending on binutils-source. It would probably be quickest to take whichever one of those is most up to date, search-and-replace architecture names, adjust the changelog, and upload.

| improve this answer | |
  • Thanks, I wasn't aware of how those builds were made. Attempting to apt-get source binutils-aarch64-linux-gnu just gets the binutils source. It wasn't apparent that these were actually generated via binutils-arm64-cross for example. It doesn't help that binutils-arm64-cross doesn't even show up in apt-cache search binutils. – Zach R Oct 8 '14 at 21:44

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.