Debian GNU/Linux port for RISC-V 64-bit (riscv64) in Debian infrastructure (debian-ports)

709 views
Skip to first unread message

Manuel A. Fernandez Montecelo

unread,
Apr 1, 2018, 10:45:14 PM4/1/18
to RISC-V SW Dev, lowri...@lists.lowrisc.org, ris...@mit.edu
Hello,

(My apologies if I post repeated information, I didn't have much time
available lately to follow all the mailing lists that I am subscribed
to).

We've been working in the last few weeks to do a (second) boostrap of
Debian for RISC-V, and after a few weeks of hard work it is now
bootstrapped and has been imported into the Debian infrastructure, in
particular, debian-ports (* description below).

All packages that are uploaded to the archive by any of the
hundreds/thousands of contributors are attempted to be built for each
one of the architectures/ABIs almost immediately, so having "riscv64"
as a Debian architecture is a quite critical step.

This means that, from now on, anybody can download .deb packages
targetted for riscv64 (rv64gc, to be precise) which compile
successfuly, often only a few hours after being uploaded to the
archive (as long as their build-dependencies are satisfied). You can
download them from here:

https://deb.debian.org/debian-ports/pool-riscv64/main/

(We will attempt to provide more ready-to-use system images in the future).


One can follow the progress of this architecture (>4k packages, or
~30% of the arch-dependent packages, built successfully by now) from:

https://buildd.debian.org/status/architecture.php?a=riscv64&suite=sid


And from here one can see the detailed output of all the compilations
of gcc-8 or nethack (only 1 version of each so far), to compare with
previous builds or versions, or with other distributions:

https://buildd.debian.org/status/logs.php?pkg=gcc-8&ver=8-20180331-1&arch=riscv64

clicking on the link of the "result" column:
https://buildd.debian.org/status/fetch.php?pkg=gcc-8&arch=riscv64&ver=8-20180331-1&stamp=1522626639&raw=0

https://buildd.debian.org/status/logs.php?pkg=nethack&arch=riscv64

clicking on the link of the "result" column:
https://buildd.debian.org/status/fetch.php?pkg=nethack&arch=riscv64&ver=3.6.0-4&stamp=1522496765&raw=0


So we hope that this is a valuable resource, and that it helps to
continue the development of RISC-V hardware, and that you can run it
on your devices in the near future ;-)


More background info about the process, if interested:

https://people.debian.org/~mafm/posts/2018/20180402_debian-gnulinux-port-for-risc-v-64-bit-riscv64-in-debian-infrastructure-debian-ports/


Cheers.


(*) In Debian, "ports" are different ABI targets (sometimes they
evolve slightly over the years, like "i386", upgrading the baseline
ISA). Those which are well established and have good support of
hardware, several developers behind and can keep up with building the
archive successfully, are designed as the main ones (amd64/x86_64,
arm64/-hf/-el, ppc64el, s390x, several mips*).

Those which are still "in the nursery" or do not have good support for
being old or similar reasons (sparc64, m68k, alpha) are in what's
known as "debian-ports", which means architectures/ABIs which are not
supported for the full lifetime of stable realeases, they cannot
compile 90% of the archive, etc. They can lag behind in building
packages, without delaying or harming the main supported architectures
-- that's the main reason to have this separation.


--
Manuel A. Fernandez Montecelo <manuel.m...@gmail.com>

Luke Kenneth Casson Leighton

unread,
Apr 2, 2018, 12:39:05 AM4/2/18
to Manuel A. Fernandez Montecelo, RISC-V SW Dev, lowrisc-dev, ris...@mit.edu
On Mon, Apr 2, 2018 at 3:44 AM, Manuel A. Fernandez Montecelo
<manuel.m...@gmail.com> wrote:

> We've been working in the last few weeks to do a (second) boostrap of
> Debian for RISC-V, and after a few weeks of hard work it is now
> bootstrapped and has been imported into the Debian infrastructure, in
> particular, debian-ports (* description below).

this is fantastic, manuel - i've been watching the debian patches
being submitted and it's great to see the results of them being
accepted. congratulations to everyone involved, this is a huge step
forward.

l.

Palmer Dabbelt

unread,
Apr 2, 2018, 10:57:17 PM4/2/18
to manuel.m...@gmail.com, sw-...@groups.riscv.org, lowri...@lists.lowrisc.org, ris...@mit.edu
That's super exciting. Thanks for all your hard work!

wes...@sifive.com

unread,
Apr 3, 2018, 2:46:09 PM4/3/18
to RISC-V SW Dev, lowri...@lists.lowrisc.org, ris...@mit.edu
Good afternoon!

I was trying to debootstrap this port but it does not install libraries, including libc6. Is this a known issue? How can I get a root filesystem out of the repository?

Thanks

Karsten Merker

unread,
Apr 3, 2018, 6:09:00 PM4/3/18
to wes...@sifive.com, RISC-V SW Dev, lowri...@lists.lowrisc.org, ris...@mit.edu
On Tue, Apr 03, 2018 at 11:46:09AM -0700, wes...@sifive.com wrote:

[Debian riscv64 port in Debian-Ports]
> I was trying to debootstrap this port but it does not install libraries,
> including libc6. Is this a known issue? How can I get a root filesystem out
> of the repository?

Hello,

this is currently one of the known issues. The background for that is
slightly complicated:

- Debootstrap supports only one suite as its source.

- The Debian riscv64 packages are currently split over two suites
within the Debian-Ports archive: "unstable" and "unreleased".

The "unstable" suite can only contain binary packages that are
built from unmodified sources from the main Debian archive,
i.e. it includes those packages for which either no
RISC-V-specific patches have been necessary or for which such
patches have already been included in the primary (i.e.
non-ports) archive.

The "unreleased" suite contains (source and corresponding
binary) packages which include RISC-V-specific patches that
have not yet been included into the package sources in the
primary (i.e. non-ports) archive. In Debian, the maintainer
of each package in principle has the authority over "his"
packages and decides which patches get included when, and that
sometimes takes a while, so not all patches that we have
supplied have already been included in the package sources in
the primary, non-ports archive. There is the possibility of
doing "Non-Maintainer Uploads" (NMUs) to the primary archive,
but that is somewhat of a method of last resort and requires a
rather longish procedure that is usually only invoked if the
package maintainer is inactive for a really prolonged period of
time.

Unfortunately glibc is one of the packages in "unreleased". In
this case the reason is not maintainer inactivity, but a rather
unfortunate infrastructure issue. If somebody should be
interested in the details, those can be seen in the Debian bug
tracking system at

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=890791

We hope to get this issue resolved soon.

We are working on providing an easy way to build a rootfs from
the ports archive despite these issues, but that will take a bit
of time.

Regards,
Karsten
--
Gem. Par. 28 Abs. 4 Bundesdatenschutzgesetz widerspreche ich der Nutzung
sowie der Weitergabe meiner personenbezogenen Daten für Zwecke der
Werbung sowie der Markt- oder Meinungsforschung.

Karsten Merker

unread,
Apr 4, 2018, 10:19:22 AM4/4/18
to Karsten Merker, wes...@sifive.com, RISC-V SW Dev, lowri...@lists.lowrisc.org, ris...@mit.edu
On Wed, Apr 04, 2018 at 12:08:54AM +0200, Karsten Merker wrote:
> On Tue, Apr 03, 2018 at 11:46:09AM -0700, wes...@sifive.com wrote:
>
> [Debian riscv64 port in Debian-Ports]
> > I was trying to debootstrap this port but it does not install libraries,
> > including libc6. Is this a known issue? How can I get a root filesystem out
> > of the repository?
[...]
> this is currently one of the known issues. The background for that is
> slightly complicated:
>
> - Debootstrap supports only one suite as its source.
>
> - The Debian riscv64 packages are currently split over two suites
> within the Debian-Ports archive: "unstable" and "unreleased".
[...]

I have added further documentation covering this issue and one
possible solution to the corresponding page in the Debian Wiki:

https://wiki.debian.org/RISC-V#Creating_a_riscv64_chroot_from_the_Debian-Ports_repository

Many thanks to Wesley Terpstra for helping in researching this
topic.
Reply all
Reply to author
Forward
0 new messages