NuxiNL / cloudabi-ports

Packages for CloudABI
Other
22 stars 7 forks source link

Debian packages for cloudabi toolchain #7

Open moreati opened 8 years ago

moreati commented 8 years ago

Currently it's necessary to manually create symlinks, and compile from source to obtain a cloudabi toolchain on Debian/Ubuntu Linux. This ticket is for tracking efforts to fix that.

moreati commented 8 years ago

Just a WIP, until I find a more appropriate repo to version it in binutils-2.26-3ubuntu1cloudabi1.diff.txt

EdSchouten commented 8 years ago

That's pretty awesome. Thanks for working on this! Quick question: how do the changes to /rules work? HOST_ARCHS_*: does this mean that we only build these packages for amd64, i386, x32 and arm64? Because in theory this package should be buildable/installable on any system, right?

Apart from not having found the time to work on this myself, one of the issues I have is that I am not really familiar with the procedure of how we get things like this upstream. Is it just a matter of pasting this diff into bugs.debian.org and wait until one of the maintainers picks it up?

moreati commented 8 years ago

how do the changes to /rules work? HOSTARCHS*: does this mean that we only build these packages for amd64, i386, x32 and arm64?

I'm still getting that straight in my head.

Because in theory this package should be buildable/installable on any system, right?

Agreed

Is it just a matter of pasting this diff into bugs.debian.org and wait until one of the maintainers picks it up?

It's a bit involved, there are procedures and manuals to follow. I'm not a Debian Developer/Maintainer so I need to recruit a Sponsor for the changes. I sent RFC: Packaging a toolchain for CloudABI to make first contact.

moreati commented 8 years ago

how do the changes to /rules work?

binutils's debian/rules is a bit of a monster, and comments/docs are shall we say, sparse.

CROSS_ARCHS is a list of Debian architectures for which binary packages are can be compiled (. Each entry is normalized at build time to a Debian multiarch tuple by dpkg-architecture. So building on a 64-bit PC, with CROSS_ARCHS=cloudabi-arm64 the resulting package would be

HOSTARCHS*: does this mean that we only build these packages for amd64, i386, x32 and arm64?

Yes, I'm playing it safe to start with.

HOST_ARCHS_<host_arch> = <build_arches> defines the list of build architectures on which binutils- is compiled. So HOST_ARCHS_cloudabi-arm64 = i386 amd64 would result in 2 packages

moreati commented 8 years ago

I've finally got a symlinks package working for clang, namely moreati/llvm-cloudabi-deb. Installing the .deb files uploaded with v0.2 should pull in clang-3.7 and create the same symlinks as described in https://nuxi.nl/cloudabi/debian/.

moreati commented 8 years ago

The other source package moreati/binutils-cloudabi-debian is still in progress. Currently the resulting binary packages each try to install the same file. So only one can be installed at a time.

dpkg: error processing archive ../binutils-aarch64-unknown-cloudabi_2.26-1_amd64.deb (--install):
 trying to overwrite '/usr/share/info/dir.gz', which is also in package binutils-x86-64-unknown-cloudabi 2.26-1
dpkg-deb: error: subprocess paste was killed by signal (Broken pipe)
EdSchouten commented 8 years ago

This is going to be interesting in the nearby future again, as LLVM 3.9 is getting closer to its release. We don't need Binutils anymore for LLVM 3.9.

dckc commented 8 years ago

I'm not sure why, but I used docker to build the llvm toolchain for use on my Ubuntu machine.

FWIW: https://gist.github.com/dckc/9159265bbf979fc4315e08cda2420d3a