Hi there,

As the author of CloudABI, I thought I'd join this discussion to
ensure this is heading in the right direction.

CloudABI should be thought of as a fictive operating system.
Applications that run on this operating system are strongly sandboxed
by making use of capability-based security. To build CloudABI
programs, we can use a cross toolchain on Linux, BSD, etc. CloudABI
programs can be run on FreeBSD 11.x or patched versions of the Linux
and NetBSD kernels.

If you want to build more sophisticated programs for CloudABI, we of
course need libraries that are cross compiled as well. To make this
clear up front, I'd rather not have the Debian project provide these,
for a number of reasons:

- Software needs to be patched up a lot. Porting code to work well
with CloudABI takes more effort than, say, making it work on
GNU/kFreeBSD. CloudABI is not Unix.
- Many pieces of software packages by Debian simply don't need to be
ported to CloudABI (e.g., an init system, Unix core utilities, etc).
- If these kinds of packages were to be provided by Debian, we also
have to repeat this effort on FreeBSD, NetBSD, Fedora, etc.

For CloudABI it makes far more sense to have its own package
collection, which is why I've been working on CloudABI Ports:
https://github.com/NuxiNL/cloudabi-ports. With CloudABI Ports I cross
build libraries and automatically export them to several formats,
including .deb files that can be installed on Debian. You always get
the same ported software, regardless of whether you're using Linux or
BSD. It is important to mention that CloudABI Ports does not ship with
a toolchain that you can use on your Linux system; it can only cross
compile software for CloudABI.

What I'd like to see happen is that Debian provides a cross compiler
for CloudABI that blends in seamlessly with the packages installed by
CloudABI Ports. This means that:

- Adding CloudABI as a Debian architecture name makes little sense in
my opinion, as we're not going to package any actual code for
CloudABI.

- The GNU architecture name is not something that can be chosen by
Debian unilaterally. CloudABI Ports currently uses
'*-unknown-cloudabi' as its target triple. All packages install their
cross compiled files under /usr/*-unknown-cloudabi on Linux and
/usr/local/*-unknown-cloudabi on FreeBSD. The -unknown- midfix is used
because CloudABI's C/C++ compiler (Clang) requires that the triple is
unabbreviated.

Browsing through the Debian package repository I think that something
similar to the Atmel AVR toolchain should done. The binutils-avr
package installs a copy of Binutils for the AVR without using any of
the Debian architecture names. What do you think?

Regards,
-- 
Ed Schouten <e...@nuxi.nl>
Nuxi, 's-Hertogenbosch, the Netherlands
KvK-nr.: 62051717

Reply via email to