https://guix.gnu.org/feeds/blog/fosdem.atomGNU Guix — Blog — FOSDEMfeed author nameGNU Guixhttps://guix.gnu.org/themes/initial/img/icon.png2024-03-20T10:58:00Zhttps://guix.gnu.org/blog/2024/guix-days-2024-recap//Guix Days 2024 and FOSDEM recapSteve George2024-02-10T18:00:00Z2024-02-10T18:00:00Z Guix contributors and users got together in Brussels to explore Guix's status, chat about new ideas and spend some time together enjoying Belgian beer! Here's a recap of what was discussed. Day 1 The first day kicked off with an update on the project's health, given by Efraim Flashner representing the project's Maintainer collective. Efraim relayed that the project is doing well, with lots of exciting new features coming into the archive and new users taking part. It was really cool listening to all the new capabilities - thank-you to all our volunteer contributors who are…<p>Guix contributors and users got together in Brussels to explore Guix's status, chat about new ideas and spend some time together enjoying Belgian beer! Here's a recap of what was discussed.</p><h1>Day 1</h1><p>The first day kicked off with an update on the project's health, given by Efraim Flashner representing the project's Maintainer collective. Efraim relayed that the project is doing well, with lots of exciting new features coming into the archive and new users taking part. It was really cool listening to all the new capabilities - thank-you to all our volunteer contributors who are making Guix better! Efraim noted that the introduction of <a href="https://guix.gnu.org/manual/en/html_node/Teams.html">Teams</a> has improved collaboration - equally, that there's plenty of areas we can improve. For example, concern remains over the "bus factor" in key areas like infrastructure. There's also a desire to release more often as this provides an updated installer and lets us talk about new capabilities.</p><p>Christopher Baines gave a general talk about the QA infrastructure and the ongoing work to develop automated builds. Chris showed a diagram of the way the <a href="https://qa.guix.gnu.org/README#org5dde7a9">services interact</a> which shows how complex it is. Increasing automation is very valuable for users and contributors, as it removes tedious and unpleasant drudgery!</p><p>Then, Julien Lepiller, representing the <a href="https://foundation.guix.info/">Guix Foundation</a>, told us about the work it does. Julien also brought some great stickers! The Guix Foundation is a non-profit association that can receive donations, host activities and support the Guix project. Did you know that it's simple and easy to join? Anyone can do so by simply <strong><a href="https://foundation.guix.info/statutes/membershipform.txt">filling in the form and paying the 10 Euro membership fee</a></strong>. Contact the Guix Foundation if you'd like to know more.</p><p>The rest of the day was taken up with small groups discussing topics:</p><ul><li><p><strong>Goblins, Hoot and Guix</strong>: Christine Lemmer-Webber gave an introduction to
the <a href="https://spritely.institute/">Spritely Institute's</a> mission to create
decentralized networks and community infrastructure that respects user freedom
and security. There was a lot of interesting discussion about how the
network capabilities could be used in Guix, for example enabling distributed
build infrastructure.</p></li><li><p><strong>Infrastructure</strong>: There was a working session on how the projects
infrastructure works and can be improved. Christopher Baines has been
putting lots of effort into the QA and build infrastructure.</p></li><li><p><strong>Guix Home</strong>: Gábor Boskovits coordinated a session on Guix Home. It was
exciting to think about how Guix Home introduces the "Guix way" in a
completely different way from packages. This could introduce a whole new
audience to the project. There was interest in improving the overall
experience so it can be used with other distributions
(e.g. Fedora, Arch Linux, Debian and Ubuntu).</p></li><li><p><strong>Release management</strong>: Julien Lepiller led us through a discussion of
release management, explaining the ways that all the parts fit together. The
most important part that has to be done is testing the installation image
which is a manual process.</p></li></ul><h1>Day 2</h1><p>The second day's sessions:</p><ul><li><p><strong>Funding</strong>: A big group discussed funding for the project. Funding is
important because it determines many aspects of what the group can achieve.
Guix is a global project so there are pools of money in the United States and
Europe (France). Andreas Enge and Julien Lepiller represented the group that
handle finance, giving answers on the practical elements. Listening to their
description of this difficult and involved work, I was struck how grateful
we all are that they're willing to do it!</p></li><li><p><strong>Governance</strong>: Guix is a living project that continues to grow and evolve.
The governance discussion concerned how the project continues to chart a
clear direction, make good decisions and bring both current and new users on
the journey. There was reflection on the need for accountability and quick
decision making, without onerous bureaurcacy, while also acknowledging that
everyone is a volunteer. There was a lot of interest in how groups can join
together, perhaps using approaches like <a href="https://en.wikipedia.org/wiki/Sociocracy">Sociocracy</a>.</p><p>Simon Tournier has been working on an <a href="https://issues.guix.gnu.org/issue/66844">RFC process</a>,
which the project will use to discuss major changes and make decisions.
Further discussion is taking place on the development mailing-list if you'd
like to take part.</p></li><li><p><strong>Alternative Architectures</strong>: The Guix team continues to work on
alternative architectures. Efraim had his 32-bit PowerPC (Powerbook G4) with
him, and there's continued work on PowerPC64, ARM64 and RISC-V 64. The big
goal is a complete source bootscrap across all architectures.</p></li><li><p><strong>Hurd</strong>: Janneke Nieuwenhuizen led a discussion around
<a href="https://www.gnu.org/software/hurd/">GNU Hurd</a>, which is a microkernel-based
architecture. Activity has increased in the last couple of years, and there's
support for SMP and 64-bit (x86) is work in progress. There's lots of ideas
and excitement about getting Guix to work on Hurd.</p></li><li><p><strong>Guix CLI improvements</strong>: Jonathan coordinated a discussion about the state of the Guix CLI. A consistent, self-explaining and intuitive experience is important for our users. There are 39 top-level commands, that cover all the functionality from package management through to environment and system creation! Various improvements were discussed, such as making extensions available and improving documentation about the REPL work-flow.</p></li></ul><h1>FOSDEM 2024 videos</h1><p>Guix Days 2024 took place just before FOSDEM 2024. FOSDEM was a fantastic two days of interesting talks and conversations. If you'd like to watch the GUIX-related talks the videos are being put online:</p><ul><li><p><a href="https://fosdem.org/2024/schedule/event/fosdem-2024-2651-making-reproducible-and-publishable-large-scale-hpc-experiments/"><strong>Making reproducible and publishable large-scale HPC experiments</strong></a>
by Philippe Swartvagher.</p></li><li><p><a href="https://fosdem.org/2024/schedule/event/fosdem-2024-2339-scheme-in-the-browser-with-guile-hoot-and-webassembly/"><strong>Scheme in the Browser with Guile Hoot and WebAssembly</strong></a>
by Robin Templeton.</p></li><li><p><a href="https://fosdem.org/2024/schedule/event/fosdem-2024-1755-risc-v-bootstrapping-in-guix-and-live-bootstrap/"><strong>RISC-V Bootstrapping in Guix and Live-Bootstrap</strong></a>
by Ekaitz Zarraga.</p></li><li><p><a href="https://fosdem.org/2024/schedule/event/fosdem-2024-2560-self-hosting-and-autonomy-using-guix-forge/"><strong>Self-hosting and autonomy using guix-forge</strong></a>
by Arun Isaac.</p></li><li><p><a href="https://fosdem.org/2024/schedule/event/fosdem-2024-2331-spritely-guile-guix-a-unified-vision-for-user-security/"><strong>Spritely, Guile, Guix: a unified vision for user security</strong></a>
by Christine Lemmer-Webber.</p></li><li><p><a href="https://fosdem.org/2024/schedule/event/fosdem-2024-2927-supporting-architecture-psabis-with-gnu-guix/"><strong>Supporting architecture psABIs with GNU Guix</strong></a>
by Efraim Flashner.</p></li></ul><h1>Join Us</h1><p>There's lots happening in Guix and many ways to get involved. We're a small and friendly project that values user freedom and a welcoming community. If this recap has inspired your interest, take a look at the <a href="https://git.savannah.gnu.org/cgit/guix/maintenance.git/tree/doc/guix-days-2024">raw notes</a> and <a href="https://guix.gnu.org/en/contribute/"><strong>join us!</strong></a></p>https://guix.gnu.org/blog/2024/meet-guix-at-fosdem-2024//Guix at FOSDEM 2024Steve George2024-01-19T15:00:00Z2024-01-19T15:00:00Z It's not long to FOSDEM 2024, where Guixers will come together to learn and hack.
As usual there's some great talks and opportunities to meet other users and
contributors. FOSDEM is Europe's biggest Free Software conference.
It's aimed at developers and anyone who's interested in the Free Software
movement. While it's an in-person conference there are live video streams
and lots of ways to participate remotely. The schedule is varied with development rooms covering many interests. Here
are some of the talks that are of particular interest to Guixers: Saturday, 3rd Febuary " Making reproducible and…<p>It's not long to FOSDEM 2024, where Guixers will come together to learn and hack.
As usual there's some great talks and opportunities to meet other users and
contributors.</p><p><a href="https://fosdem.org/2024/">FOSDEM</a> is Europe's biggest Free Software conference.
It's aimed at developers and anyone who's interested in the Free Software
movement. While it's an in-person conference there are live video streams
and lots of ways to participate remotely.</p><p>The schedule is varied with development rooms covering many interests. Here
are some of the talks that are of particular interest to Guixers:</p><h3>Saturday, 3rd Febuary</h3><ul><li><a href="https://fosdem.org/2024/schedule/event/fosdem-2024-2651-making-reproducible-and-publishable-large-scale-hpc-experiments/">"<strong>Making reproducible and publishable large-scale HPC experiments</strong>"</a>
by Philippe Swartvagher (10:30 CET). Philippe will talk about the search for
reproducible experiments in high-performance computing (HPC) and how he uses
Guix in his methododology.</li></ul><h3>Sunday, 4th February</h3><p>The <a href="https://fosdem.org/2024/schedule/track/declarative-and-minimalistic-computing/">Declarative and Minimalistic Computing track</a>
takes place Sunday morning. Important topics are:</p><ul><li><em>Minimalism Matters</em>: sustainable computing through smaller, resource efficient systems</li><li><em>Declarative Programming</em>: reliable and reproducible systems by minimising side-effects</li></ul><p>Guix-related talks are:</p><ul><li><a href="https://fosdem.org/2024/schedule/event/fosdem-2024-2339-scheme-in-the-browser-with-guile-hoot-and-webassembly/">"<strong>Scheme in the Browser with Guile Hoot and WebAssembly</strong>"</a>
by Robin Templeton (11:00 CET). A talk covering bringing Scheme to WebAssembly
through the Guile Hoot toolchain. Addressing the current state of Guile Hoot
with examples, and how recent Wasm proposals might improve the
situation in the future.</li><li><a href="https://fosdem.org/2024/schedule/event/fosdem-2024-1755-risc-v-bootstrapping-in-guix-and-live-bootstrap/">"<strong>RISC-V Bootstrapping in Guix and Live-Bootstrap</strong>"</a>
by Ekaitz Zarraga (11:20 CET). An update on the RISC-V bootstrapping effort
in Guix and Live-bootstrap. Covering what's been done, what's left to do and
some of the lessons learned.</li><li><a href="https://fosdem.org/2024/schedule/event/fosdem-2024-2560-self-hosting-and-autonomy-using-guix-forge/">"<strong>Self-hosting and autonomy using guix-forge</strong>"</a>
by Arun Isaac (11:40 CET). This talk demonstrates the value of Guix's declarative
configuration to simplify deploying and maintaining complex services. Showing
<a href="https://guix-forge.systemreboot.net/">guix-forge</a>, a project that
makes it easy to self-host an efficient software forge.</li><li><a href="https://fosdem.org/2024/schedule/event/fosdem-2024-2331-spritely-guile-guix-a-unified-vision-for-user-security/">"<strong>Spritely, Guile, Guix: a unified vision for user security</strong>"</a>
by Christine Lemmer-Webber (12:00 CET). Spritely's goal is to create
networked communities that puts people in control of their own identity
and security. This talk will present a unified vision of how Spritely,
Guile, and Guix can work together to bring user freedom and security to
everyone!</li></ul><p>This year the track commemorates Joe Armstrong, who was the principal
inventor of <a href="https://www.erlang.org/">Erlang</a>. His focus on concurrency,
distribution and fault-tolerence are key topics in declarative and minimalistic
computing. This <a href="https://thenewstack.io/why-erlang-joe-armstrongs-legacy-of-fault-tolerant-computing/">article</a>
is a great introduction to his legacy. Along with
<a href="https://youtu.be/lKXe3HUG2l4?si=3zbc7BEbg1o6mW5R">"<strong>The Mess We're In</strong>"</a>, a
classic where he discusses why software is getting worse with time, and what can
be done about it.</p><p>On Sunday afternoon, the <a href="https://fosdem.org/2024/schedule/track/distributions/">Distributions devroom</a>
has another Guix talk:</p><ul><li><a href="https://fosdem.org/2024/schedule/event/fosdem-2024-2927-supporting-architecture-psabis-with-gnu-guix/">"<strong>Supporting architecture psABIs with GNU Guix</strong>"</a>
by Efraim Flashner (14:30 CET). Guix maintainer Efraim will be giving a
talk about improving Guix's performance. Demonstrating how to use psABI
targets that keep older hardware compatible while providing optimized
libraries for newer hardware.</li></ul><h3>Guix Days (Thursday and Friday)</h3><p>Guix Days will be taking place on the Thursday and Friday before FOSDEM. This is
an <a href="https://en.wikipedia.org/wiki/Unconference">"unconference-style"</a> event,
where the community gets together to focus on Guix's development. All the
details are on the
<a href="https://libreplanet.org/wiki/Group:Guix/FOSDEM2024"><strong>Libreplanet Guix Wiki</strong></a>.</p><h3>Participating</h3><p>Come and join in the fun, whether you're a new Guix user or seasoned hacker!
If you're not in Brussels you can still take part:</p><ul><li>See the <a href="https://fosdem.org/2024/schedule/">FOSDEM Schedule</a></li><li>Watch the <a href="https://fosdem.org/2024/schedule/streaming/">live streams</a></li><li>Chat in the unofficial <a href="https://matrix.to/#/#guix-days:matrix.org">Guix Days Matrix room</a></li></ul><h3>About GNU Guix</h3><p><a href="https://guix.gnu.org">GNU Guix</a> is a transactional package manager and
an advanced distribution of the GNU system that <a href="https://www.gnu.org/distros/free-system-distribution-guidelines.html">respects user
freedom</a>.
Guix can be used on top of any system running the Hurd or the Linux
kernel, or it can be used as a standalone operating system distribution
for i686, x86_64, ARMv7, AArch64, and POWER9 machines.</p><p>In addition to standard package management features, Guix supports
transactional upgrades and roll-backs, unprivileged package management,
per-user profiles, and garbage collection. When used as a standalone
GNU/Linux distribution, Guix offers a declarative, stateless approach to
operating system configuration management. Guix is highly customizable
and hackable through <a href="https://www.gnu.org/software/guile">Guile</a>
programming interfaces and extensions to the
<a href="http://schemers.org">Scheme</a> language.</p>https://guix.gnu.org/blog/2023/meet-guix-at-fosdem-2023//Meet Guix at FOSDEMLudovic Courtès2023-01-23T15:00:00Z2023-01-23T15:00:00Z GNU Guix will be present at FOSDEM next
week, February 4th and 5th. This is the first time since the pandemic
that FOSDEM takes place again “in the flesh” in Brussels, which is
exciting to those of us lucky enough to get there! Everything will be
live-streamed and recorded thanks to the amazing FOSDEM crew, so
everyone can enjoy wherever they are; some of the talks this year will
be “remote” too: pre-recorded videos followed by live Q&A sessions with
the speaker. Believe it or not, it’s the 9th year Guix is represented at
FOSDEM , with more than 30
talks given…<p>GNU Guix will be present at <a href="https://fosdem.org/2023/">FOSDEM</a> next
week, February 4th and 5th. This is the first time since the pandemic
that FOSDEM takes place again “in the flesh” in Brussels, which is
exciting to those of us lucky enough to get there! Everything will be
live-streamed and recorded thanks to the amazing FOSDEM crew, so
everyone can enjoy wherever they are; some of the talks this year will
be “remote” too: pre-recorded videos followed by live Q&A sessions with
the speaker.</p><p>Believe it or not, it’s the <a href="https://guix.gnu.org/en/blog/tags/fosdem/">9th year Guix is represented at
FOSDEM</a>, with more than 30
talks given in past editions! This year brings several talks that will let you
learn more about different areas of the joyful Hydra Guix has become.</p><p>This all starts on Saturday, in particular with the amazing <a href="https://fosdem.org/2023/schedule/track/declarative_and_minimalistic_computing/">declarative
and minimalistic computing
track</a>:</p><ul><li><a href="https://fosdem.org/2023/schedule/event/guixriscv/">“<em>Bringing RISC-V to Guix's
bootstrap</em>”</a>
(remote), as a continuation of <a href="https://fosdem.org/2022/schedule/event/riscvadventures/">last year’s
talk</a>, will
be Ekaitz Zarraga’s account of the successful port the <em>full-source
bootstrap</em> to RISC-V—no less!</li><li>In <a href="https://fosdem.org/2023/schedule/event/guixfhs/">“<em>Using GNU Guix Containers with FHS (Filesystem Hierarchy
Standard)
Support</em>”</a> (remote)
John Kehayias will present the recently-added <a href="https://guix.gnu.org/en/blog/2023/the-filesystem-hierarchy-standard-comes-to-guix-containers/"><code>guix shell --container --emulate-fhs</code></a>.</li><li><a href="https://fosdem.org/2023/schedule/event/minimalguixsystemimages/">“<em>Declaring just what is
necessary</em>”</a>
(remote) will show how to create system images that contain just
what you need, by Efraim Flashner.</li><li>In <a href="https://fosdem.org/2023/schedule/event/guixopenscience/">“<em>GNU Guix and Open Science, a
crush?</em>”</a>,
Simon Tournier will illustrates ways in which Guix can be beneficial
to “open science”.</li><li><a href="https://fosdem.org/2023/schedule/event/replicantguix/">“<em>How Replicant, a 100% free software Android distribution, uses
(or doesn't use)
Guix</em>”</a> will
showcase an unusual and exciting use case for Guix, by one of
Replicant’s core developers, Denis “GNUtoo” Carikli.</li><li><a href="https://fosdem.org/2023/schedule/event/guixhome/">“<em>An Introduction to Guix
Home</em>”</a> will be
given on Sunday (remote) by David Wilson of <a href="https://systemcrafters.net/">System
Crafters</a> fame—a must if you want to
understand this newfangled Guix Home thing!</li></ul><p>There are many other <a href="https://fosdem.org/2023/schedule/track/declarative_and_minimalistic_computing/">exciting talks in this
track</a>,
some of which closely related to Guix and Guile; check it out!</p><p>You can also discover Guix in other tracks:</p><ul><li>On Saturday, <a href="https://fosdem.org/2023/schedule/event/openresearch_guix/">“<em>Guix, toward practical transparent, verifiable and
long-term reproducible
research</em>”</a>
will be an introduction to Guix (by Simon Tournier) for an audience
of scientists interested in coming up with scientific practices that
improves verifiability and transparency.</li><li>On Saturday in the security track, <a href="https://fosdem.org/2023/schedule/event/security_where_does_that_code_come_from/"><em>“Where does that code come
from?”</em></a>
(by Ludovic Courtès) will talk Git checkout authentication in Guix
and how this fits in the broader picture of “software supply chain”
security.</li><li>On Sunday, Efraim Flashner will talk about <a href="https://fosdem.org/2023/schedule/event/rv_gnu_guix/">“<em>Porting RISC-V to
GNU Guix</em>”</a> in
the RISC-V track.</li><li>On Sunday, in the high-performance computing (HPC) track, Ludovic
Courtès will give a lightning talk about CPU tuning in Guix entitled
<a href="https://fosdem.org/2023/schedule/event/cpu_tuning_gnu_guix/">“<em>Reproducibility and performance: why
choose?</em>”</a>.</li></ul><p><img src="/static/blog/img/Guix-Days-2023.png" alt="Guix Days logo" /></p><p>As was the case pre-pandemic, we are also organizing the Guix Days as a
<a href="https://fosdem.org/2023/fringe/">FOSDEM fringe event</a>, a two-day Guix
workshop where contributors and enthusiasts will meet. The workshop
takes place on <strong>Thursday Feb. 2nd and Friday Feb. 3rd</strong> at the
<a href="https://www.openstreetmap.org/?mlat=50.85025&mlon=4.37326#map=19/50.85025/4.37326">Institute of Cultural Affairs (ICAB) in
Brussels</a>.</p><p>Again this year there will be few talks; instead, the event will
consist primarily of
“<a href="https://en.wikipedia.org/wiki/Unconference">unconference-style</a>”
sessions focused on specific hot topics about Guix, the Shepherd,
continuous integration, and related tools and workflows.</p><p>Attendance to the workshop is free and open to everyone, though you are
invited to register (there are few seats left!). Check out <a href="https://libreplanet.org/wiki/Group:Guix/FOSDEM2023">the
workshop’s wiki
page</a> for
registration and practical info. Hope to see you in Brussels!</p><h4>About GNU Guix</h4><p><a href="https://guix.gnu.org">GNU Guix</a> is a transactional package manager and
an advanced distribution of the GNU system that <a href="https://www.gnu.org/distros/free-system-distribution-guidelines.html">respects user
freedom</a>.
Guix can be used on top of any system running the Hurd or the Linux
kernel, or it can be used as a standalone operating system distribution
for i686, x86_64, ARMv7, AArch64, and POWER9 machines.</p><p>In addition to standard package management features, Guix supports
transactional upgrades and roll-backs, unprivileged package management,
per-user profiles, and garbage collection. When used as a standalone
GNU/Linux distribution, Guix offers a declarative, stateless approach to
operating system configuration management. Guix is highly customizable
and hackable through <a href="https://www.gnu.org/software/guile">Guile</a>
programming interfaces and extensions to the
<a href="http://schemers.org">Scheme</a> language.</p>https://guix.gnu.org/blog/2022/meet-guix-at-fosdem-2022//Meet Guix at FOSDEMLudovic Courtès2022-02-02T15:00:00Z2022-02-02T15:00:00Z As usual, GNU Guix will be present at FOSDEM
this week-end, February 5th and 6th. Due to the pandemic, FOSDEM takes
place on-line for the second year, but we’re confident the wires will be
able carry enthusiasm to the homes of the thousands of attendees. This year’s a bit special: we’re celebrating 10 years of Guix, including
8 years sharing our excitement at
FOSDEM ! This edition will
also bring you several talks about Guix and related projects. Sunday morning, in the distributions
track ,
co-maintainer and long-time hacker Mathieu Othacehe will present
“ Unify your distributions —…<p>As usual, GNU Guix will be present at <a href="https://fosdem.org/2022/">FOSDEM</a>
this week-end, February 5th and 6th. Due to the pandemic, FOSDEM takes
place on-line for the second year, but we’re confident the wires will be
able carry enthusiasm to the homes of the thousands of attendees.</p><p>This year’s a bit special: we’re celebrating 10 years of Guix, including
<a href="https://guix.gnu.org/en/blog/tags/fosdem/">8 years sharing our excitement at
FOSDEM</a>! This edition will
also bring you several talks about Guix and related projects.</p><ul><li>Sunday morning, in the <a href="https://fosdem.org/2022/schedule/track/distributions/">distributions
track</a>,
co-maintainer and long-time hacker Mathieu Othacehe will present
<a href="https://fosdem.org/2022/schedule/event/unify_your_distributions/">“<em>Unify your distributions — How GNU Guix can run on any of your
hardware</em>”</a></li></ul><p>The other talks will take place on Sunday as well, in the now
traditional track on <a href="https://fosdem.org/2022/schedule/track/declarative_and_minimalistic_computing/">declarative and minimalistic
computing</a>:</p><ul><li><a href="https://fosdem.org/2022/schedule/event/riscvadventures/">“<em>A year of RISC-V adventures: embracing chaos in your software
journey</em>”</a>
will be Ekaitz Zarraga’s account of the work porting
GNU Guile, stage0, and GNU Mes to RISC-V, which will be instrumental
in improving the RISC-V port of Guix.</li><li>With <a href="https://fosdem.org/2022/schedule/event/guixdeclare/"><em>“Declare All Your Needs — Managing computing environment
declaratively using
GNU Guix”</em></a>,
Andrew Tropin will show how you can declare your whole computing
environment using <a href="https://guix.gnu.org/manual/devel/en/html_node/System-Configuration.html">Guix
System</a>,
<a href="https://guix.gnu.org/manual/devel/en/html_node/Home-Configuration.html">Guix
Home</a>,
and <a href="https://git.sr.ht/~abcdw/rde/">rde</a>.</li><li>In <a href="https://fosdem.org/2022/schedule/event/gnuguixci/">“<em>GNU Guix behind the scene — Continuous integration for the
GNU Guix
project</em>”</a>,
Mathieu Othacehe will show what’s happening in the backyard of
<a href="https://ci.guix.gnu.org">Guix’s build farm</a>.</li><li><a href="https://fosdem.org/2022/schedule/event/commonworkflowlang/">“<em>Concise Common Workflow Language — Concision and elegance in a
workflow language using
Lisp</em>”</a>
will be Arun Isaac presenting <a href="https://hpc.guix.info/blog/2022/01/ccwl-for-concise-and-painless-cwl-workflows/">the all new
ccwl</a>, a
Guile domain-specific language (DSL) to define scientific workflows.</li></ul><p>But let’s be clear: there are other <a href="https://fosdem.org/2022/schedule/track/declarative_and_minimalistic_computing/">exciting talks in this
track</a>,
some of which closely related to Guix and Guile, so do not miss out!</p><p><img src="/static/blog/img/Guix-Days-online-2022.png" alt="Guix Days logo" /></p><p>As in previous years, we are also organizing a <a href="https://guix.gnu.org/en/blog/2022/online-guix-days-2022-announcement-1/">two-day on-line
event</a>
two weeks after FOSDEM. If you’d like to share what you’ve done with
Guix or in Guix, if you have packaging stories from the trenches,
there’s <em>one week left to submit a talk</em>. At any rate, whether you’re
simply curious about Guix or whether you’re already deep into, we hope
to see you on February, 19–20!</p><h4>About GNU Guix</h4><p><a href="https://guix.gnu.org">GNU Guix</a> is a transactional package manager and
an advanced distribution of the GNU system that <a href="https://www.gnu.org/distros/free-system-distribution-guidelines.html">respects user
freedom</a>.
Guix can be used on top of any system running the Hurd or the Linux
kernel, or it can be used as a standalone operating system distribution
for i686, x86_64, ARMv7, AArch64 and POWER9 machines.</p><p>In addition to standard package management features, Guix supports
transactional upgrades and roll-backs, unprivileged package management,
per-user profiles, and garbage collection. When used as a standalone
GNU/Linux distribution, Guix offers a declarative, stateless approach to
operating system configuration management. Guix is highly customizable
and hackable through <a href="https://www.gnu.org/software/guile">Guile</a>
programming interfaces and extensions to the
<a href="http://schemers.org">Scheme</a> language.</p>https://guix.gnu.org/blog/2021/meet-guix-at-fosdem-2021//Meet Guix at FOSDEMLudovic Courtès2021-02-02T15:00:00Z2021-02-02T15:00:00Z As usual, GNU Guix will be present at FOSDEM
on February 6th and 7th. Due to the pandemic, this year’s edition takes
place on-line. The downside is that we’ll miss beautiful Brussels, but
on the up side hopefully people who cannot join physically will be able
to attend this year, and the event’s carbon footprint will be much
lower. We’re happy to say that there will be several talks about Guix and
related projects! Saturday afternoon, Guix Workflow Language — Extending a
reproducible software deployment system for
HPC by
Ricardo Wurmus, in the high-performance computing (HPC)
track…<p>As usual, GNU Guix will be present at <a href="https://fosdem.org/2021/">FOSDEM</a>
on February 6th and 7th. Due to the pandemic, this year’s edition takes
place on-line. The downside is that we’ll miss beautiful Brussels, but
on the up side hopefully people who cannot join physically will be able
to attend this year, and the event’s carbon footprint will be much
lower.</p><p>We’re happy to say that there will be several talks about Guix and
related projects!</p><ul><li>Saturday afternoon, <a href="https://fosdem.org/2021/schedule/event/guix_workflow/"><em>Guix Workflow Language — Extending a
reproducible software deployment system for
HPC</em></a> by
Ricardo Wurmus, in the <a href="https://fosdem.org/2021/schedule/track/hpc_big_data_and_data_science/">high-performance computing (HPC)
track</a>,
will introduce the <a href="https://workflows.guix.info/">Guix Workflow
Language</a> and discuss the state of
workflow languages.</li></ul><p>Sunday, the <a href="https://fosdem.org/2021/schedule/track/declarative_and_minimalistic_computing/">Declarative and Minimalistic Computing
track</a>
will be home to several Guix talks:</p><ul><li>Around noon, <a href="https://fosdem.org/2021/schedule/event/gnumes/"><em>GNU Mes: the Full Source Bootstrap — The missing link
between stage0/M2-Planet and
Mes</em></a> by Jan
“janneke” Nieuwenhuizen will present the latest advances in
<a href="https://guix.gnu.org/en/blog/tags/bootstrapping/">bootstrapping</a>:
building the root of the Guix package collection <em>entirely from
source</em>!</li><li>Early in the afternoon, <a href="https://fosdem.org/2021/schedule/event/gnuguix/"><em>Declaratively yours — Composing system
abstractions with
GNU Guix</em></a> by
Ludovic Courtès will present how Guix takes advantage of its
declarative structure, showcasing concrete examples.</li><li><a href="https://fosdem.org/2021/schedule/event/minimalismguix/"><em>Is GNU Guix a minimal distribution, and what might that even
mean?</em></a> by
Christopher Baines will reflect on what minimalism means for
distributions and how it might apply to Guix.</li></ul><p>Do not miss all the other <a href="https://fosdem.org/2021/schedule/track/declarative_and_minimalistic_computing/">exciting talks in this
track</a>,
some by Guile and Guix hackers!</p><p>For the fourth time, we are also organizing a <a href="https://fosdem.org/2021/fringe/">FOSDEM fringe
event</a> on Monday, February 8th, a
<strong>one-day Guix workshop</strong> where contributors and enthusiasts will meet,
on-line. Being an on-line event, we hope to attract people (maybe you?)
who wouldn’t have come to the in-person meeting but will be happy to
learn about what’s cooking in Guix and share their experience, needs,
and ideas.</p><p>Again this year there will be few talks; instead, the event will
consist primarily of
“<a href="https://en.wikipedia.org/wiki/Unconference">unconference-style</a>”
sessions focused on specific hot topics about Guix, the Shepherd,
continuous integration, and related tools and workflows.</p><p>Attendance to the workshop is free and open to everyone, though you are
invited to register (there are only a few seats left!). Join <a href="https://guixbbb.fosshost.org">our
BigBlueButton instance</a> on Monday 8th, and
check out <a href="https://libreplanet.org/wiki/Group:Guix/FOSDEM2021">the workshop’s wiki
page</a> for practical
info. Hope to see you on-line!</p><h4>About GNU Guix</h4><p><a href="https://guix.gnu.org">GNU Guix</a> is a transactional package manager and
an advanced distribution of the GNU system that <a href="https://www.gnu.org/distros/free-system-distribution-guidelines.html">respects user
freedom</a>.
Guix can be used on top of any system running the Hurd or the Linux
kernel, or it can be used as a standalone operating system distribution
for i686, x86_64, ARMv7, and AArch64 machines.</p><p>In addition to standard package management features, Guix supports
transactional upgrades and roll-backs, unprivileged package management,
per-user profiles, and garbage collection. When used as a standalone
GNU/Linux distribution, Guix offers a declarative, stateless approach to
operating system configuration management. Guix is highly customizable
and hackable through <a href="https://www.gnu.org/software/guile">Guile</a>
programming interfaces and extensions to the
<a href="http://schemers.org">Scheme</a> language.</p>https://guix.gnu.org/blog/2020/meet-guix-at-fosdem-2020//Meet Guix at FOSDEMManolis Ragkousis2020-01-10T14:30:00Z2020-01-10T14:30:00Z As usual, GNU Guix will be present at FOSDEM
on February 1st and 2nd. This year, we’re happy to say that there will
be quite a few talks about Guix and related projects! On Saturday afternoon, Guix: Unifying provisioning, deployment, and
package management in the age of
containers by Ludovic
in the main track on containers and
security ,
will reflect on what GNU Guix
has to offer to users and how it compares to other approaches—from
CONDA and pip to Flatpak and Docker. Sunday morning starts with Efraim talking in the Rust devroom about
Packaging Rust…<p>As usual, GNU Guix will be present at <a href="https://fosdem.org/2020/">FOSDEM</a>
on February 1st and 2nd. This year, we’re happy to say that there will
be quite a few talks about Guix and related projects!</p><ul><li>On Saturday afternoon, <a href="https://fosdem.org/2020/schedule/event/guix/"><em>Guix: Unifying provisioning, deployment, and
package management in the age of
containers</em></a> by Ludovic
in the <a href="https://fosdem.org/2020/schedule/track/containers_and_security/">main track on containers and
security</a>,
will reflect on what GNU Guix
has to offer to users and how it compares to other approaches—from
CONDA and pip to Flatpak and Docker.</li><li>Sunday morning starts with Efraim talking in the Rust devroom about
<a href="https://fosdem.org/2020/schedule/event/rust_packaging_gnu_guix/"><em>Packaging Rust programs in
GNU Guix</em></a>—telling
Rust programmers about the needs of a distro like Guix, and about the
journey building infrastructure for Rust packages in Guix.</li><li>Next up is <a href="https://fosdem.org/2020/schedule/event/ggaaattyp/"><em>GNU Guix as an alternative to the
Yocto Project</em></a> by
Mathieu in the Distributions devroom will demonstrate how to use
GNU Guix to build a root filesystem for an embedded device.</li><li>Later on in the HPC, Big Data, and Data Science devroom, Ludovic will
present <a href="https://fosdem.org/2020/schedule/event/reprod_jupyter_guix/"><em>Towards reproducible Jupyter
notebooks</em></a>
which will talk about
<a href="https://hpc.guix.info/blog/2019/10/towards-reproducible-jupyter-notebooks/">Guix-Jupyter</a>,
which aims to make Jupyter
notebook self-contained and to support reproducible deployment.</li><li>In the same devroom, Efraim will present <a href="https://fosdem.org/2020/schedule/event/reprod_container/"><em>Sharing Reproducible Results
in a
Container</em></a>
about how Guix solves the issue of reproducibility and deployment of
containers.</li><li>Finally in the Minimalistic, Experimental and Emerging Languages
devroom, janneke with <a href="https://fosdem.org/2020/schedule/event/gnumes/"><em>GNU Mes, Scheme-only bootstrap and
beyond</em></a> will report
on three years of hard work tackling one of the most pressing
security issues of operating systems—the “trusting trust” attack.
Janneke will present exciting bootstrapping achievements and their
integration in Guix.</li><li>Pierre will present <a href="https://fosdem.org/2020/schedule/event/gnuguixpackagemanager/"><em>Universal package & service discovery with
Guix</em></a>
on how he intends to leverage the Guile programming language to boost
searchability of packages and services <em>via</em> intuitive user interfaces
and semantics.</li><li>Pjotr will talk about why minimalism matters in computing with <a href="https://fosdem.org/2020/schedule/event/lispeverywhere/"><em>Lisp
everywhere!</em></a></li><li>Andy will discuss all the work that has gone into the upcoming
<a href="https://www.gnu.org/software/guile/news">Guile 3</a>—which will soon
power Guix—making it a faster implementation, with <a href="https://fosdem.org/2020/schedule/event/guile2020/"><em>Celebrating
Guile 2020</em></a>.</li><li>Last, Chris Marusich will give an <a href="https://fosdem.org/2020/schedule/event/gexpressionsguile"><em>Introduction to
G-Expressions</em></a>,
the magic behind
<a href="https://guix.gnu.org/manual/devel/en/html_node/G_002dExpressions.html">them</a>,
and how to use them in Guix.</li></ul><p>The <a href="https://fosdem.org/2020/schedule/track/minimalistic_experimental_and_emerging_languages/">Minimalistic, Experimental and Emerging Languages
devroom</a>
will also feature talks about about <a href="https://racket-lang.org">Racket</a>,
<a href="https://www.lua.org/">Lua</a>, <a href="https://crystal-lang.org/">Crystal</a>,
<a href="https://nim-lang.org/">Nim</a>, and <a href="https://pharo.org/">Pharo</a>
that you should not miss under any circumstances!</p><p><img src="https://guix.gnu.org/static/blog/img/Guix-Days-2020.png" alt="Guix Days logo." /></p><p>For the third time, we are also organizing the Guix Days as a <a href="https://fosdem.org/2020/fringe/">FOSDEM
fringe event</a>, a two-day Guix workshop
where contributors and enthusiasts will meet. The workshop takes place
on Thursday Jan. 30st and Friday Jan. 31st at the Institute of Cultural
Affairs (ICAB) in Brussels.</p><p>Again this year there will be few talks; instead, the event will
consist primarily of
“<a href="https://en.wikipedia.org/wiki/Unconference">unconference-style</a>”
sessions focused on specific hot topics about Guix, the Shepherd,
continuous integration, and related tools and workflows.</p><p>Attendance to the workshop is free and open to everyone, though you are
invited to register (there are only a few seats left!). Check out <a href="https://libreplanet.org/wiki/Group:Guix/FOSDEM2020">the
workshop’s wiki
page</a> for
registration and practical info. Hope to see you in Brussels!</p><h4>About GNU Guix</h4><p><a href="https://guix.gnu.org">GNU Guix</a> is a transactional package
manager and an advanced distribution of the GNU system that <a href="https://www.gnu.org/distros/free-system-distribution-guidelines.html">respects
user
freedom</a>.
Guix can be used on top of any system running the kernel Linux, or it
can be used as a standalone operating system distribution for i686,
x86_64, ARMv7, and AArch64 machines.</p><p>In addition to standard package management features, Guix supports
transactional upgrades and roll-backs, unprivileged package management,
per-user profiles, and garbage collection. When used as a standalone
GNU/Linux distribution, Guix offers a declarative, stateless approach to
operating system configuration management. Guix is highly customizable
and hackable through <a href="https://www.gnu.org/software/guile">Guile</a>
programming interfaces and extensions to the
<a href="http://schemers.org">Scheme</a> language.</p>https://guix.gnu.org/blog/2019/guix-days-bootstrapping-arm//Guix Days: Bootstrapping ARMChris Marusich2019-02-22T00:00:00Z2019-02-22T00:00:00Z During the Guix
Days before
FOSDEM , some of us discussed bootstrapping
on ARM architectures. We focused on how to port Mes to ARM. This
post consists of notes from that discussion. Recap: i686/x86_64 Reduced Binary Seed We started our discussion by reviewing the current status for
i686-linux and x86_64-linux. Jan (janneke) Nieuwenhuizen gave a
similar summary a few
days later at FOSDEM, and you can read the slides
online . Previously, the size of Guix's binary seed totaled about 250 MB. Now,
on the
core-updates
branch, it's been reduced to about 130 MB.…<p>During the <a href="https://libreplanet.org/wiki/Group:Guix/FOSDEM2019">Guix
Days</a> before
<a href="https://fosdem.org/2019/">FOSDEM</a>, some of us discussed bootstrapping
on ARM architectures. We focused on how to port Mes to ARM. This
post consists of notes from that discussion.</p><h4>Recap: i686/x86_64 Reduced Binary Seed</h4><p>We started our discussion by reviewing the current status for
i686-linux and x86_64-linux. Jan (janneke) Nieuwenhuizen gave <a href="https://fosdem.org/2019/schedule/event/gnumes/">a
similar summary</a> a few
days later at FOSDEM, and you can <a href="https://fosdem.org/2019/schedule/event/gnumes/attachments/slides/2848/export/events/attachments/gnumes/slides/2848/gnu_mes_fosdem19_v2.pdf">read the slides
online</a>.</p><p>Previously, the size of Guix's binary seed totaled about 250 MB. Now,
on the
<a href="http://git.savannah.gnu.org/cgit/guix.git/log/?h=core-updates">core-updates</a>
branch, it's been reduced to about 130 MB. This is nearly a 50%
reduction in size, which is great progress! Using this 130 MB reduced
binary seed, it's currently possible to bootstrap Guix for both
i686-linux and x86_64-linux.</p><p>To bootstrap x86_64-linux, we actually "cheat" and bootstrap from the
i686-linux bootstrap binaries. This is possible because an
x86_64-linux system can natively run i686-linux executables, and also
because Guix automatically <a href="http://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/commencement.scm?id=63d4ef52ebad4157817d56ccbe974da8fff81929#n1562">cross-compiles for the host
platform</a>
during the bootstrap process. In other words, on an x86_64-linux
system, Guix uses the i686-linux bootstrap binaries to build a
cross-compilation toolchain, which it then uses to build a final,
normal x86_64-linux toolchain. Guix then uses this final toolchain to
build everything else for the x86_64-linux system.</p><p>That's great news for owners of i686 and x86_64 machines! But what
about ARM? Although we could cross-compile the bootstrap binaries for
ARM from an x86_64 machine, this isn't great because it would increase
the number of things a person or organization would have to verify in
order to audit the system. Perhaps more importantly, it would force
owners of ARM machines to implicitly trust an x86_64 machine. The
dominant vendors of CPUs implementing the x86_64 architecture, Intel
and AMD, both include a management engine in many of their products,
which represents a <a href="https://www.fsf.org/blogs/sysadmin/the-management-engine-an-attack-on-computer-users-freedom">serious risk to user
freedom</a>.</p><p>In the short term, cross-compilation is better than nothing, but in
the long term, we'd prefer to bootstrap ARM without cross-compiling
from another architecture. Concretely, we'll need to complete at
least the following tasks.</p><h4>TODO: Implement a Mes backend for ARM</h4><p>We need to implement a new Mes backend for an ARM architecture. We
should choose an ARM instruction set that can work on a variety of ARM
platforms with minimal fuss. The following candidates were suggested:</p><ul><li><p>ARMv4. We would need to avoid unaligned memory accesses because
they can behave in different ways depending on the CPU. This is the
latest version of ARM that GCC 2.95 supports, which matters because
<a href="http://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/commencement.scm?id=63d4ef52ebad4157817d56ccbe974da8fff81929#n510">GCC 2.95 is the latest version that the Mes C Library
supports</a>.</p></li><li><p>ARMv7. If we avoid extensions and unaligned memory accesses, it
might still work for our needs. It was mentioned in the session
that TinyCC will probably work with either ARMv4 or ARMv7. In
TinyCC, as a first step, it's probably fine to depend on ARMv7 since
it's the most common recent architecture version (and it is more
forgiving). Later, if we remove unaligned accesses, it will also
work on ARMv4 and thus on basically all ARM CPUs.</p></li></ul><p>After the session concluded, Danny Milosavljevic committed some
changes to <a href="http://git.savannah.gnu.org/cgit/mes.git/log/?h=wip-arm">the wip-arm branch of
mes</a> which
enabled many of the tests to pass - but some tests still fail, and you
can help finish the work!</p><h4>TODO: Port mescc-tools to ARM, also</h4><p>The mes project depends upon the
<a href="https://savannah.nongnu.org/projects/mescc-tools">mescc-tools</a>
project, which also must be ported. The mescc-tools project contains
an M1 macro assembler, which would need to be extended to support ARM
branches. Currently, ARM branches are very broken.</p><h4>TODO: Improve Guix integration and merge core-updates</h4><p>Even if we had a new Mes backend and mescc-tools for ARM, there would
still be more to do. The Guix integration is not quite complete - the
<a href="http://git.savannah.gnu.org/cgit/guix.git/log/?h=core-updates">core-updates</a>
branch still needs to be merged with
<a href="http://git.savannah.gnu.org/cgit/guix.git/log/?h=master">master</a>, and
we'll need to fix any problems that arise. Even on i686-linux, the
bottom of the bootstrap path is incomplete. Preliminary Guix code
exists on the
<a href="http://git.savannah.gnu.org/cgit/guix.git/log/?h=wip-bootstrap">wip-bootstrap</a>
branch to achieve a scheme-only bootstrap, but help would be welcome!</p><h4>You can help!</h4><p>In summary, you can help the Mes project by doing any of the following
things:</p><ul><li><p>Help implement an ARMv7 (or ARMv4) backend for Mes! This entails
machine code and assembly. It should be fun for anyone who wants to
play around close to the metal.</p></li><li><p>Help port mescc-tools to ARM. This entails <a href="http://git.savannah.nongnu.org/cgit/mescc-tools.git/tree/HACKING?id=0a930aa47389ec842bcbe8a270ab2921a36f62d9#n33">writing an assembler in
M1 macro
code</a>
and probably goes hand-in-hand with work on Mes itself.</p></li><li><p>Help firm up
<a href="http://git.savannah.gnu.org/cgit/guix.git/log/?h=core-updates">core-updates</a>
and merge it to
<a href="http://git.savannah.gnu.org/cgit/guix.git/log/?h=master">master</a>!
This involves Guix package definitions and troubleshooting build
failures. It should be fun for anyone who wants to learn more about
the bigger picture of how Guix bootstraps all of its software from
the new reduced binary seed.</p></li><li><p>Help complete the i686-linux and x86_64-linux bootstrap. You can
hack on the bleeding edge scheme code in the
<a href="http://git.savannah.gnu.org/cgit/guix.git/log/?h=wip-bootstrap">wip-bootstrap</a>
branch, or maybe you can help extend the bootstrap path all the way
down to <a href="https://github.com/oriansj/stage0">approximately 500 bytes of auditable assembly
code</a>!</p></li></ul><p>There's still plenty of meaty work left to be done! If you're
interested, <a href="http://bootstrappable.org/who.html">get in touch</a> and
we'll help you get started.</p><h4>Think Big: Bootstrapping without an OS</h4><p>In addition to the immediate tasks necessary for porting Mes to ARM,
we also took some time to think about the long term hopes and dreams
of the bootstrappable project.</p><p>We discussed how in the long term, in parallel with the aforementioned
tasks, it should be possible to investigate how to bootstrap an entire
system without relying on a OS or even a kernel running on the
machine. For example, one can imagine loading the transitive closure
of source (including a tiny, human-readable machine code program to
kick off the entire process) into a computer as a kind of "firmware
image". When the computer runs, it would execute this "firmware
image" and eventually produce a fully bootstrapped system.</p><h4>Think Bigger: Bootstrapping Hardware</h4><p>We also briefly talked about how even after we achieve full source
software bootstrap, we will still need to tackle the problem of
"hardware bootstrap". It isn't clear what form this will eventually
take, but surely <a href="https://www.gnu.org/philosophy/free-hardware-designs.en.html">free hardware
design</a>
will play an important role in ensuring that we can trust our
hardware, too.</p><h4>About Bootstrappable Builds and Mes</h4><p>Software is bootstrappable when it does not depend on a binary seed
that cannot be built from source. Software that is not
bootstrappable - even if it is free software - is a serious security
risk
<a href="https://www.ece.cmu.edu/~ganger/712.fall02/papers/p761-thompson.pdf">for</a>
<a href="https://manishearth.github.io/blog/2016/12/02/reflections-on-rusting-trust/">a</a>
<a href="https://www.quora.com/What-is-a-coders-worst-nightmare/answer/Mick-Stute">variety</a>
<a href="http://blog.regehr.org/archives/1241">of</a>
<a href="https://www.alchemistowl.org/pocorgtfo/pocorgtfo08.pdf">reasons</a>.
The <a href="https://bootstrappable.org/">Bootstrappable Builds</a> project aims
to reduce the number and size of binary seeds to a bare minimum.</p><p><a href="https://www.gnu.org/software/mes/">GNU Mes</a> is closely related to the
Bootstrappable Builds project. Mes aims to create an entirely
source-based bootstrapping path for the Guix System and other
interested GNU/Linux distributions. The goal is to start from a
minimal, easily inspectable binary (which should be readable as
source) and bootstrap into something close to R6RS Scheme.</p><p>Currently, Mes consists of a mutual self-hosting scheme interpreter
and C compiler. It also implements a C library. Mes, the scheme
interpreter, is written in about 5,000 lines of code of simple C.
MesCC, the C compiler, is written in scheme. Together, Mes and MesCC
can compile <a href="http://gitlab.com/janneke/tinycc">a lightly patched
TinyCC</a> that is self-hosting. Using
this TinyCC and the Mes C library, it is possible to bootstrap the
entire Guix System for i686-linux and x86_64-linux.</p><h4>About GNU Guix</h4><p><a href="https://www.gnu.org/software/guix">GNU Guix</a> is a transactional package
manager and an advanced distribution of the GNU system that <a href="https://www.gnu.org/distros/free-system-distribution-guidelines.html">respects
user
freedom</a>.
Guix can be used on top of any system running the kernel Linux, or it
can be used as a standalone operating system distribution for i686,
x86_64, ARMv7, and AArch64 machines.</p><p>In addition to standard package management features, Guix supports
transactional upgrades and roll-backs, unprivileged package management,
per-user profiles, and garbage collection. When used as a standalone
GNU/Linux distribution, Guix offers a declarative, stateless approach to
operating system configuration management. Guix is highly customizable
and hackable through <a href="https://www.gnu.org/software/guile">Guile</a>
programming interfaces and extensions to the
<a href="http://schemers.org">Scheme</a> language.</p>https://guix.gnu.org/blog/2019/qa-on-non-intel-at-guix-days//QA on non-Intel at Guix DaysEfraim Flashner2019-02-07T09:30:00Z2019-02-07T09:30:00Z During the second day of Guix Days (a FOSDEM fringe
event ) we split up into smaller working groups
based on our areas of interest. I led a group which aimed to address some of
the package issues which exist on non-Intel architectures. Of course not
everyone has access to an ARM board, but with the
qemu-binfmt-service
service it is possible to use QEMU and the binfmt_misc functionality of the
Linux kernel to emulate these systems. Many have reported that this system
emulation is comparable in speed to many of the available ARM boards on the
market. Yet another possibility…<p>During the second day of Guix Days (a FOSDEM <a href="https://fosdem.org/2019/fringe">fringe
event</a>) we split up into smaller working groups
based on our areas of interest. I led a group which aimed to address some of
the package issues which exist on non-Intel architectures. Of course not
everyone has access to an ARM board, but with the
<a href="https://www.gnu.org/software/guix/manual/en/html_node/Virtualization-Services.html#index-binfmt_005fmisc"><code>qemu-binfmt-service</code></a>
service it is possible to use QEMU and the <code>binfmt_misc</code> functionality of the
Linux kernel to emulate these systems. Many have reported that this system
emulation is comparable in speed to many of the available ARM boards on the
market. Yet another possibility would be to do the hacking on an x86_64 system
and, when we had a working prototype, to test it with QEMU or on actual ARM
hardware.</p><p>Our group decided to tackle Go, which was lacking support in Guix on armhf and
aarch64. Upon checking the build logs from Cuirass and the source code for Go we
determined that Go did indeed require the <code>gold</code> linker from the GNU Binutils. We
didn't want to modify the copy of Binutils in Guix since it is part of our
bootstrap story, so we quickly put together a new package definition which added
the configure flag to enable <code>gold</code>.</p><pre><code class="language-scheme">(define-public binutils-gold
(package
(inherit binutils)
(name "binutils-gold")
(arguments
(substitute-keyword-arguments (package-arguments binutils)
((#:configure-flags flags)
`(cons "--enable-gold=default" ,flags))))))</code></pre><p>This was an obvious first step, and one which we knew would fail. Had it been
this easy <code>gold</code> would have been enabled back in 2012 when it was first added.
Our error came in the form of one of the binaries not being able to link against
<code>libstdc++.so</code>, which is in the <code>gcc:lib</code> output. This was quickly added and we
were off and building again.</p><pre><code class="language-scheme">(define-public binutils-gold
(package
(inherit binutils)
(name "binutils-gold")
(arguments
(substitute-keyword-arguments (package-arguments binutils)
((#:configure-flags flags)
`(cons "--enable-gold=default" ,flags))))
(inputs
`(("gcc:lib" ,gcc "lib")))))</code></pre><p>Once again this failed. What were we missing? The correct paths were included,
the file was indeed in the <code>gcc:lib</code> output. We inspected the original
<code>binutils</code> package again noticed that it was built against a static libgcc, so
of course it wouldn't find the shared library. In order to work quickly we
copied the configure flags rather than inheriting them from <code>binutils</code> and
tried our build again.</p><pre><code class="language-scheme">(define-public binutils-gold
(package
(inherit binutils)
(name "binutils-gold")
(arguments
(substitute-keyword-arguments (package-arguments binutils)
((#:configure-flags flags)
`(cons* "--enable-gold=default"
"--enable-new-dtags"
"--with-lib-path=/no-ld-lib-path"
"--enable-install-libbfd"
"--enable-deterministic-archives"))))
(inputs
`(("gcc:lib" ,gcc "lib")))))</code></pre><p>This time we made it through the full build phase and we knew we were almost
there. Our enthusiasm was quickly dampened when we got the error during the
tests: <code>unable to find the 'dc' program</code>. What is this <code>dc</code> program? This isn't
any package any of us had heard of before. It definitely wasn't packaged in
Guix. A quick <code>apt-cache search dc</code> search in Ubuntu showed they didn't have
package either. A second search of Ubuntu, <code>apt-file search dc | grep '/bin/dc'</code>
quickly showed us it was in the <code>bc</code> package, and soon we were building
<code>binutils-gold</code> again.</p><pre><code class="language-scheme">(define-public binutils-gold
(package
(inherit binutils)
(name "binutils-gold")
(arguments
(substitute-keyword-arguments (package-arguments binutils)
((#:configure-flags flags)
`(cons* "--enable-gold=default"
"--enable-new-dtags"
"--with-lib-path=/no-ld-lib-path"
"--enable-install-libbfd"
"--enable-deterministic-archives"))))
(native-inputs
`(("bc" ,bc)))
(inputs
`(("gcc:lib" ,gcc "lib")))))</code></pre><p>Approaching the end of the <code>check</code> phase we soon ran into another error, there
was an unpatched <code>/bin/sh</code> somewhere in the source code which was generated
during the check phase. Based on the build logs we were able to track down
approximately where the code should be, so we downloaded the source <code>tar xf $(guix build --source binutils)</code> and started looking. There were many obvious
<code>/bin/sh</code> calls which we cross-referenced with the build logs and the
<code>patch-source-shebangs</code> phase, and this left us with some code in
<code>gold/Makefile.in</code>, which by default is not included in the
<code>patch-source-shebangs</code> and would need to be fixed manually.</p><pre><code class="language-scheme">(define-public binutils-gold
(package
(inherit binutils)
(name "binutils-gold")
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'patch-source-shebangs 'patch-more-shebangs
(lambda _
(substitute* "gold/Makefile.in"
(("/bin/sh") (which "sh")))
#t)))
,@(substitute-keyword-arguments (package-arguments binutils)
((#:configure-flags flags)
`(cons* "--enable-gold=default"
"--enable-new-dtags"
"--with-lib-path=/no-ld-lib-path"
"--enable-install-libbfd"
"--enable-deterministic-archives")))))
(native-inputs
`(("bc" ,bc)))
(inputs
`(("gcc:lib" ,gcc "lib")))))</code></pre><p>One more build cycle later and we did it! <code>/gnu/store/…-binutils-gold-2.31.1</code>
existed! We now did two things, we copied our patch over to an aarch64 build
machine and we started cleaning up our package definition on our x86_64 build
machine, where we knew we had a working package definition.</p><pre><code class="language-scheme">(define-public binutils-gold
(package
(inherit binutils)
(name "binutils-gold")
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'patch-source-shebangs 'patch-more-shebangs
(lambda _
(substitute* "gold/Makefile.in"
(("/bin/sh") (which "sh")))
#t)))
,@(substitute-keyword-arguments (package-arguments binutils)
((#:configure-flags flags)
`(cons* "--enable-gold=default"
(delete "LDFLAGS=-static-libgcc" ,flags))))))
(native-inputs
`(("bc" ,bc)))
(inputs
`(("gcc:lib" ,gcc "lib")))))</code></pre><p>Fortunately for us the changes in the code worked on x86_64 and we still got a
working <code>binutils-gold</code> output. On our aarch64 side the build was progressing
nicely and everything seemed fine... until we suddenly were presented with big
red errors about unrelocatable code. How could it? Everything was working so
well! Undeterred, we built the source again, this time targeting armhf and were
unfortunately presented with similar errors. Deciding to address the test
failures later (It's ARM! It's not as well tested as other architectures!
Right?) we disabled the tests and unsurprisingly <code>binutils-gold</code> built on both
aarch64 and armhf.</p><pre><code class="language-scheme">(define-public binutils-gold
(package
(inherit binutils)
(name "binutils-gold")
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'patch-source-shebangs 'patch-more-shebangs
(lambda _
(substitute* "gold/Makefile.in"
(("/bin/sh") (which "sh")))
#t)))
,@(substitute-keyword-arguments (package-arguments binutils)
((#:tests? _ #f) #f)
((#:configure-flags flags)
`(cons* "--enable-gold=default"
(delete "LDFLAGS=-static-libgcc" ,flags))))))
(native-inputs
`(("bc" ,bc)))
(inputs
`(("gcc:lib" ,gcc "lib")))))</code></pre><p>Now for the real test. Due to bootstrapping issues with Go and aarch64, aarch64
uses Go@1.4 built for armhf. Go@1.11 failed to build until now because it was
missing the <code>gold</code> linker. Surely using the <code>gold</code> linker would be a good test
if our package worked. Since Go for aarch64 is 'more complex' due to the
bootstrapping using armhf's Go, we decided to test armhf first. <code>binutils-gold</code>
was added and our build started.</p><pre><code class="language-diff"> (native-inputs
`(("go" ,go-1.4)
+ ,@(match (%current-system)
+ ((or "armhf-linux" "aarch64-linux")
+ `(("gold" ,binutils-gold)))
+ (_ `()))
,@(package-native-inputs go-1.4)))</code></pre><p>First build, success! <code>/gnu/store/…-go-1.11.5</code> exists! OK, but does it
actually work? <code>guix build syncthing --system=armhf-linux</code>.
<code>/gnu/store/…-syncthing-1.0.0</code> exists too! A quick check of <code>guix refresh --list-dependent go@1.4</code> showed that we had unlocked 176 new packages for armhf.
Even better, since they had all failed by default due to go@1.11 failing to
build, for each package that did build meant one fewer package which failed to
build which should take a big bite out of our build failures.</p><p>Our next test was syncthing for aarch64. <code>/gnu/store/…-go-1.11.5</code> exists!
<code>/gnu/store/…-syncthing-1.0.0</code> ... does not. "<code>unknown architecture 'armv7-a'</code>."
It seems that Go is confused which architecture it is building for.
Unfortunately we were reaching the end of our time for hacking, so that will
have to wait for another day. All that was left now was the test failures on
<code>binutils-gold</code> for the ARM systems. Some attempts at cargo-culting other code
failed (per-architecture tests we had and overriding flags in
<code>substitute-keyword-arguments</code> we had, but not together), but after some attempts
we were able to create a working package definition we were happy with.</p><pre><code class="language-scheme">(define-public binutils-gold
(package
(inherit binutils)
(name "binutils-gold")
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'patch-source-shebangs 'patch-more-shebangs
(lambda _
(substitute* "gold/Makefile.in"
(("/bin/sh") (which "sh")))
#t)))
,@(substitute-keyword-arguments (package-arguments binutils)
; Upstream is aware of unrelocatable test failures on arm*.
((#:tests? _ #f)
(if (any (cute string-prefix? <> (or (%current-target-system)
(%current-system)))
'("i686" "x86_64"))
'#t '#f))
((#:configure-flags flags)
`(cons* "--enable-gold=default"
(delete "LDFLAGS=-static-libgcc" ,flags))))))
(native-inputs
`(("bc" ,bc)))
(inputs
`(("gcc:lib" ,gcc "lib")))))</code></pre><p>This patch was pushed to the master branch as
<a href="https://git.savannah.gnu.org/cgit/guix.git/commit/?id=28317d499034b00cf1f08a9efd39bd2bc3425b19">28317d499034b00cf1f08a9efd39bd2bc3425b19</a>,
and the
<a href="https://git.savannah.gnu.org/cgit/guix.git/commit/?id=1009e6e7ecc00b72a51778e90b0212ccc33bfa7a">commit</a>
following uses it as a native-input for Go@1.9 and Go@1.11. Go@1.4 was added in
<a href="https://git.savannah.gnu.org/cgit/guix.git/commit/?id=7a2941a83ee8ecac9ca7a3a076b1231805b39bbd">June
2016</a>
and Go@1.6 that
<a href="https://git.savannah.gnu.org/cgit/guix.git/commit/?id=ec91bcb500a2540b91fca6fd2a93a0562c427712">August</a>,
with our first go packages being added in <a href="https://git.savannah.gnu.org/cgit/guix.git/commit/?id=56a37713c3fada3010666278eb37873980746572">October
2017</a>.
That same
<a href="https://git.savannah.gnu.org/cgit/guix.git/commit/?id=dda785f66081871501236722f68c8eaa31103186">October</a>
Go@1.4 had support limited to Intel and armhf and in October 2018, in an effort
to work toward a resolution, a
<a href="https://git.savannah.gnu.org/cgit/guix.git/commit/?id=2ab321ca37d1c00c1540d78d587226d3d487b2d4">patch</a>
was added to have aarch64 use Go@1.4 built for armhf for it's bootstrap path.
Basically since the addition of the Go language support into Guix there was not
a time when it was usable on armhf or aarch64. Hopefully we will soon finish
getting full Go support on aarch64 and we can move all 352 dependents of Go@1.4
from "failing" to "succeeding" and have these architectures better supported.</p><h4>About GNU Guix</h4><p><a href="https://www.gnu.org/software/guix">GNU Guix</a> is a transactional package
manager and an advanced distribution of the GNU system that <a href="https://www.gnu.org/distros/free-system-distribution-guidelines.html">respects
user
freedom</a>.
Guix can be used on top of any system running the kernel Linux, or it
can be used as a standalone operating system distribution for i686,
x86_64, ARMv7, and AArch64 machines.</p><p>In addition to standard package management features, Guix supports
transactional upgrades and roll-backs, unprivileged package management,
per-user profiles, and garbage collection. When used as a standalone
GNU/Linux distribution, Guix offers a declarative, stateless approach to
operating system configuration management. Guix is highly customizable
and hackable through <a href="https://www.gnu.org/software/guile">Guile</a>
programming interfaces and extensions to the
<a href="http://schemers.org">Scheme</a> language.</p>https://guix.gnu.org/blog/2019/meet-guix-at-fosdem-2019//Meet Guix at FOSDEMLudovic Courtès2019-01-28T12:00:00Z2019-01-28T12:00:00Z As usual, GNU Guix will be present at FOSDEM
in the coming days with a couple of talks: Saturday afternoon, Building a whole distro on top of a
minimalistic
language
will present to the minimalist languages
track
audience how Scheme, rather than “piling feature on top of feature”,
provides the fundamental tools that have allowed us to build a wide
range of operating system features on top of it. In the same track, GNU Mes—Reduced binary seed bootstrap for
Guix will report
on two years of hard work tackling one of the most pressing security
issues…<p>As usual, GNU Guix will be present at <a href="https://fosdem.org/2019/">FOSDEM</a>
in the coming days with a couple of talks:</p><ul><li>Saturday afternoon, <a href="https://fosdem.org/2019/schedule/event/gnuguixminimalism/"><em>Building a whole distro on top of a
minimalistic
language</em></a>
will present to the <a href="https://fosdem.org/2019/schedule/track/minimalistic_languages/">minimalist languages
track</a>
audience how Scheme, rather than “piling feature on top of feature”,
provides the fundamental tools that have allowed us to build a wide
range of operating system features on top of it.</li><li>In the same track, <a href="https://fosdem.org/2019/schedule/event/gnumes/"><em>GNU Mes—Reduced binary seed bootstrap for
Guix</em></a> will report
on two years of hard work tackling one of the most pressing security
issues of operating systems—the <a href="https://en.wikipedia.org/wiki/Backdoor_(computing)#Compiler_backdoors">“trusting trust”
attack</a>.
Janneke will present exciting <a href="https://bootstrappable.org">bootstrapping
achievements</a> and their integration in
Guix.</li><li>Ricardo <a href="https://fosdem.org/2019/schedule/event/guixinfra/">will present the GNU Guix Workflow
Language</a> in the
same track—on the benefits of having reproducible software
deployment built into a scientific workflow execution engine.</li><li>On Sunday afternoon (don’t rush to the train station yet!),
<a href="https://fosdem.org/2019/schedule/event/gnu_guix_new_approach_to_software_distribution/"><em>GNU Guix’s take on a new approach to software
distribution</em></a>
will present to <a href="https://fosdem.org/2019/schedule/track/distributions/">fellow distro
hackers</a> how
Guix differs from “traditional distros” and how it tries to make
popular ad-hoc software deployment tools (pip, VirtualEnv, Cabal,
but also Flatplak, Docker—you name it) less appealing than its
integrated solutions.</li></ul><p>The <a href="https://fosdem.org/2019/schedule/event/gnuguixminimalism/">minimalist languages
track</a> will
also feature talks about <a href="https://gnu.org/s/guile">GNU Guile</a> and about
<a href="https://racket-lang.org">Racket</a> that you should not miss under any
circumstances!</p><p><img src="https://www.gnu.org/software/guix/static/blog/img/Guix-Days-2019.png" alt="Guix Days logo." /></p><p>For the second time, we are also organizing the Guix Days as a <a href="https://fosdem.org/2019/fringe/">FOSDEM
fringe event</a>, a two-day Guix workshop
where contributors and enthusiasts will meet. The workshop takes place
on Thursday Jan. 31st and Friday Feb. 1st at the Institute of Cultural
Affairs (ICAB) in Brussels.</p><p>This year there will be few talks; instead, the event will consist
primarily of
“<a href="https://en.wikipedia.org/wiki/Unconference">unconference-style</a>”
sessions focused on specific hot topics about Guix, the Shepherd,
continuous integration, and related tools and workflows. We are also
happy to welcome fellow <a href="https://nixos.org/nix/">Nix</a> hackers, which
should allow us to develop cross-distro cooperation.</p><p>Attendance to the workshop is free and open to everyone, though you are
invited to register (there are only a few seats left!). Check out <a href="https://libreplanet.org/wiki/Group:Guix/FOSDEM2019">the
workshop’s wiki
page</a> for
registration and practical info. Hope to see you in Brussels!</p><h4>About GNU Guix</h4><p><a href="https://www.gnu.org/software/guix">GNU Guix</a> is a transactional package
manager and an advanced distribution of the GNU system that <a href="https://www.gnu.org/distros/free-system-distribution-guidelines.html">respects
user
freedom</a>.
Guix can be used on top of any system running the kernel Linux, or it
can be used as a standalone operating system distribution for i686,
x86_64, ARMv7, and AArch64 machines.</p><p>In addition to standard package management features, Guix supports
transactional upgrades and roll-backs, unprivileged package management,
per-user profiles, and garbage collection. When used as a standalone
GNU/Linux distribution, Guix offers a declarative, stateless approach to
operating system configuration management. Guix is highly customizable
and hackable through <a href="https://www.gnu.org/software/guile">Guile</a>
programming interfaces and extensions to the
<a href="http://schemers.org">Scheme</a> language.</p>https://guix.gnu.org/blog/2018/meet-guix-at-fosdem-2018//Meet Guix at FOSDEMLudovic Courtès2018-01-29T16:00:00Z2018-01-29T16:00:00Z GNU Guix will be present at FOSDEM in the
coming days with a couple of talks: The many ways of using Guix
packages on
Saturday afternoon, in the “package management” track, will be a
guide to which ways might suit you , by Christopher Baines. On Sunday morning, in the “high-performance computing” track, I will
give a talk entitled Tying software deployment to scientific
workflows .
I will explain how Guix can be thought of as a programming language
extension that can be used to make software deployment a
first-class citizen , as illustrated…<p>GNU Guix will be present at <a href="https://fosdem.org/2018/">FOSDEM</a> in the
coming days with a couple of talks:</p><ul><li><a href="https://fosdem.org/2018/schedule/event/usingguix/"><em>The many ways of using Guix
packages</em></a> on
Saturday afternoon, in the “package management” track, will be <em>a
guide to which ways might suit you</em>, by Christopher Baines.</li><li>On Sunday morning, in the “high-performance computing” track, I will
give a talk entitled <a href="https://fosdem.org/2018/schedule/event/guix_workflows/"><em>Tying software deployment to scientific
workflows</em></a>.
I will explain how Guix can be thought of as a programming language
extension that can be used to <em>make software deployment a
first-class citizen</em>, as illustrated by the <a href="http://guixwl.org">Guix Workflow
Language</a>, and how this fits with <a href="https://hpc.guix.info">our vision for
HPC</a>.</li></ul><p>We are also organizing a <em>one-day Guix workshop</em> where contributors and
enthusiasts will meet, thanks to the efforts of Manolis Ragkousis and
Pjotr Prins. The workshop takes place on Friday Feb. 2nd at the
Institute of Cultural Affairs (ICAB) in Brussels. The morning will be
dedicated to talks—among other things, we are happy to welcome Eelco
Dolstra, the founder of <a href="https://nixos.org/nix/">Nix</a>, without which
Guix would not exist today. The afternoon will be a more informal
discussion and hacking session.</p><p>Attendance to the workshop is free and open to everyone, though you are
invited to register. Check out <a href="https://libreplanet.org/wiki/Group:Guix/FOSDEM2018">the workshop’s wiki
page</a> for the
program, registration, and practical info. Hope to see you in Brussels!</p><h4>About GNU Guix</h4><p><a href="https://www.gnu.org/software/guix">GNU Guix</a> is a transactional package
manager for the GNU system. The Guix System Distribution or GuixSD is
an advanced distribution of the GNU system that relies on GNU Guix and
<a href="https://www.gnu.org/distros/free-system-distribution-guidelines.html">respects the user's
freedom</a>.</p><p>In addition to standard package management features, Guix supports
transactional upgrades and roll-backs, unprivileged package management,
per-user profiles, and garbage collection. Guix uses low-level
mechanisms from the Nix package manager, except that packages are
defined as native <a href="https://www.gnu.org/software/guile">Guile</a> modules,
using extensions to the <a href="http://schemers.org">Scheme</a> language. GuixSD
offers a declarative approach to operating system configuration
management, and is highly customizable and hackable.</p><p>GuixSD can be used on an i686, x86_64 and armv7 machines. It is also
possible to use Guix on top of an already installed GNU/Linux system,
including on mips64el and aarch64.</p>https://guix.gnu.org/blog/2017/back-from-fosdem-2017//Back from FOSDEM 2017sirgazil2017-02-06T00:00:00+02002017-02-06T00:00:00+0200 FOSDEM 2017 concluded. This time, the GNU Guix community participated with 8 talks. An introduction to functional package management with GNU Guix DOWNLOAD VIDEO (WebM, 26 minutes) Speaker: Ricardo Wurmus Slides: guix-fosdem-intro-20170205.pdf Composing system services in GuixSD DOWNLOAD VIDEO (WebM, 43 minutes) Speaker: Ludovic Courtès Slides: guix-fosdem-composing-services-20170205.pdf Reproducible packaging and distribution of software with GNU Guix DOWNLOAD VIDEO (WebM, 29 minutes) …<p><a href="https://fosdem.org/2017/">FOSDEM 2017</a> concluded. This time, the GNU Guix community participated with 8 talks.</p><h3>An introduction to functional package management with GNU Guix</h3><video src="https://video.fosdem.org/2017/K.4.601/guixintroduction.vp8.webm" controls="controls"><div class="action-box centered-text"><a class="button-big" href="https://video.fosdem.org/2017/K.4.601/guixintroduction.vp8.webm">DOWNLOAD VIDEO</a><p>(WebM, 26 minutes)</p></div></video><ul><li>Speaker: Ricardo Wurmus</li><li>Slides: <a href="https://www.gnu.org/software/guix/guix-fosdem-intro-20170205.pdf">guix-fosdem-intro-20170205.pdf</a></li></ul><h3>Composing system services in GuixSD</h3><video src="https://video.fosdem.org/2017/K.4.601/composingsystemservicesinguixsd.vp8.webm" controls="controls"><div class="action-box centered-text"><a class="button-big" href="https://video.fosdem.org/2017/K.4.601/composingsystemservicesinguixsd.vp8.webm">DOWNLOAD VIDEO</a><p>(WebM, 43 minutes)</p></div></video><ul><li>Speaker: Ludovic Courtès</li><li>Slides: <a href="https://www.gnu.org/software/guix/guix-fosdem-composing-services-20170205.pdf">guix-fosdem-composing-services-20170205.pdf</a></li></ul><h3>Reproducible packaging and distribution of software with GNU Guix</h3><video src="https://video.fosdem.org/2017/K.4.601/guixpackages.vp8.webm" controls="controls"><div class="action-box centered-text"><a class="button-big" href="https://video.fosdem.org/2017/K.4.601/guixpackages.vp8.webm">DOWNLOAD VIDEO</a><p>(WebM, 29 minutes)</p></div></video><ul><li>Speaker: Pjotr Prins</li><li>Slides: <a href="https://www.gnu.org/software/guix/guix-fosdem-packaging-20170205.pdf">guix-fosdem-packaging-20170205.pdf</a></li></ul><h3>Mes—Maxwell's Equations of Software</h3><video src="https://mirrors.dotsrc.org/fosdem/2017/K.4.601/guixsdbootstrap.vp8.webm" controls="controls"><div class="action-box centered-text"><a class="button-big" href="https://mirrors.dotsrc.org/fosdem/2017/K.4.601/guixsdbootstrap.vp8.webm">DOWNLOAD VIDEO</a><p>(WebM, 28 minutes)</p></div></video><ul><li>Speaker: Jan Nieuwenhuizen</li><li>Slides: <a href="https://www.gnu.org/software/guix/guix-fosdem-mes-20170205.pdf">guix-fosdem-mes-20170205.pdf</a></li></ul><h3>Adding GNU/Hurd support to GNU Guix and GuixSD</h3><video src="http://mirror.onet.pl/pub/mirrors/video.fosdem.org/2017/K.4.601/guixhurd.vp8.webm" controls="controls"><div class="action-box centered-text"><a class="button-big" href="http://mirror.onet.pl/pub/mirrors/video.fosdem.org/2017/K.4.601/guixhurd.vp8.webm">DOWNLOAD VIDEO</a><p>(WebM, 30 minutes)</p></div></video><ul><li>Speaker: Manolis Ragkousis</li><li>Slides: <a href="https://www.gnu.org/software/guix/guix-fosdem-hurd-20170205.pdf">guix-fosdem-hurd-20170205.pdf</a></li></ul><h3>Workflow management with GNU Guix</h3><video src="https://mirrors.dotsrc.org/fosdem/2017/K.4.601/guixworkflowmanagement.vp8.webm" controls="controls"><div class="action-box centered-text"><a class="button-big" href="https://mirrors.dotsrc.org/fosdem/2017/K.4.601/guixworkflowmanagement.vp8.webm">DOWNLOAD VIDEO</a><p>(WebM, 20 minutes)</p></div></video><ul><li>Speaker: Roel Janssen</li><li>Slides: <a href="https://www.gnu.org/software/guix/guix-fosdem-workflow-management-20170205.pdf">guix-fosdem-workflow-management-20170205.pdf</a></li></ul><h3>Optimized and reproducible HPC Software deployment</h3><video src="https://video.fosdem.org/2017/H.2213/hpc_deployment_guix.vp8.webm" controls="controls"><div class="action-box centered-text"><a class="button-big" href="https://video.fosdem.org/2017/H.2213/hpc_deployment_guix.vp8.webm">DOWNLOAD VIDEO</a><p>(WebM, 26 minutes)</p></div></video><ul><li>Speakers: Pjotr Prins and Ludovic Courtès</li><li>Slides: <a href="https://www.gnu.org/software/guix/guix-fosdem-hpc-part1-20170204.pdf">guix-fosdem-hpc-part1-20170204.pdf</a>, <a href="https://www.gnu.org/software/guix/guix-fosdem-hpc-part2-20170204.pdf">guix-fosdem-hpc-part2-20170204.pdf</a></li></ul><h3>The future of Guix</h3><video src="http://bofh.nikhef.nl/events/FOSDEM/2017/K.4.601/futureofguix.vp8.webm" controls="controls"><div class="action-box centered-text"><a class="button-big" href="http://bofh.nikhef.nl/events/FOSDEM/2017/K.4.601/futureofguix.vp8.webm">DOWNLOAD VIDEO</a><p>(WebM, 48 minutes)</p></div></video><ul><li>Speakers: Christopher Webber, Ludovic Courtès, Pjotr Prins, Ricardo Wurmus</li></ul>https://guix.gnu.org/blog/2017/meet-guix-at-fosdem-2017//Meet Guix at FOSDEMLudovic Courtès2017-01-17T14:30:00Z2017-01-17T14:30:00Z
GNU Guix will be present
at FOSDEM next month with
talks on a number of areas of active development. The first one
will be on Saturday, in
the high-performance
computing (HPC) track :
Optimized
and reproducible HPC Software deployment (Pjotr
Prins and Ludovic Courtès).
…<div>
<p>
GNU Guix will be present
at <a href="https://fosdem.org/2017">FOSDEM</a> next month with
talks on a number of areas of active development. The first one
will be on Saturday, in
the <a href="https://fosdem.org/2017/schedule/track/hpc,_big_data_and_data_science/">high-performance
computing (HPC) track</a>:
<ul>
<li><a href="https://fosdem.org/2017/schedule/event/hpc_deployment_guix/"><i>Optimized
and reproducible HPC Software deployment</i></a> (Pjotr
Prins and Ludovic Courtès).
</li>
</ul>
Of course,
the <a href="https://fosdem.org/2017/schedule/track/gnu_guile/">GNU Guile
track</a> on Sunday will be like home, with a bunch of talks there:
<ul>
<li><a href="https://fosdem.org/2017/schedule/event/guixintroduction/"><i>An
introduction to functional package management with
GNU Guix</i></a> (Ricardo Wurmus);</li>
<li><a href="https://fosdem.org/2017/schedule/event/composingsystemservicesinguixsd/"><i>Composing
system services in GuixSD</i></a> (Ludovic Courtès);</li>
<li><a href="https://fosdem.org/2017/schedule/event/guixpackages/"><i>Reproducible packaging and distribution of
software with GNU Guix</i></a> (Pjotr Prins);</li>
<li><a href="https://fosdem.org/2017/schedule/event/guixsdbootstrap/"><i>Mes—Maxwell's
Equations of Software</i></a> (Jan Nieuwenhuizen);</li>
<li><a href="https://fosdem.org/2017/schedule/event/guixhurd/"><i>Adding
GNU/Hurd support to GNU Guix and GuixSD</i></a> (Manolis
Ragkousis);</li>
<li><a href="https://fosdem.org/2017/schedule/event/guixworkflowmanagement/"><i>Workflow
management with GNU Guix</i></a> (Roel Janssen).</li>
</ul>
We'll end the day with
a <a href="https://fosdem.org/2017/schedule/event/futureofguix/">round
table</a> on the future of Guix.
</p>
<p>
<a href="https://fosdem.org/2017">FOSDEM</a> takes place in
Brussels, Belgium, on the 4th and 5th of February, with
the <a href="https://fosdem.org/2017/schedule/track/gnu_guile/">Guile
track</a> all day long on Sunday 5th. Hope to see you there!
</p>
<h4>About GNU Guix</h4>
<p>
<a href="https://www.gnu.org/software/guix">GNU Guix</a> is a
transactional package manager for the GNU system. The Guix System
Distribution or GuixSD is an advanced distribution of the GNU system
that relies on GNU Guix
and <a href="https://www.gnu.org/distros/free-system-distribution-guidelines.html">respects
the user's freedom</a>.<br /></p><p>In addition to standard package
management features, Guix supports transactional upgrades and
roll-backs, unprivileged package management, per-user profiles, and
garbage collection. Guix uses low-level mechanisms from the Nix
package manager, except that packages are defined as
native <a href="https://www.gnu.org/software/guile">Guile</a> modules,
using extensions to the <a href="http://schemers.org">Scheme</a>
language. GuixSD offers a declarative approach to operating system
configuration management, and is highly customizable and
hackable.<br />
</p>
<p>
GuixSD can be used on an i686 or x86_64 machine. It is also possible
to use Guix on top of an already installed GNU/Linux system, including
on mips64el and armv7.
</p>
</div>https://guix.gnu.org/blog/2016/meet-guix-at-fosdem//Meet Guix at FOSDEM!Ludovic Courtès2016-01-22T00:00:00+01002016-01-22T00:00:00+0100 One week to FOSDEM ! This year, there will be no less than six Guix-related talks. This and the fact that we are addressing different communities is exciting. First, on Saturday morning, in the GNU Guile track (room K.3.201): Adding GNU/Hurd support to GNU Guix (Manolis Ragkousis)
A gentle introduction to functional package management with GNU Guix (Ricardo Wurmus)
Your distro is a Scheme library (Ludovic Courtès)
Foreign packages in GNU Guix (Pjotr Prins)
…<div><p>One week to <a href="https://fosdem.org/2016">FOSDEM</a>! This year, there will be no less than six Guix-related talks. This and the fact that we are addressing different communities is exciting.<br /></p><p>First, on Saturday morning, in the <a href="https://fosdem.org/2016/schedule/track/gnu_guile/">GNU Guile track</a> (room K.3.201):<br /></p><ul><li><a href="https://fosdem.org/2016/schedule/event/guixhurd/">Adding GNU/Hurd support to GNU Guix</a> (Manolis Ragkousis)
</li><li><a href="https://fosdem.org/2016/schedule/event/guix/">A gentle introduction to functional package management with GNU Guix</a> (Ricardo Wurmus)
</li><li><a href="https://fosdem.org/2016/schedule/event/guixdistro/">Your distro is a Scheme library</a> (Ludovic Courtès)
</li><li><a href="https://fosdem.org/2016/schedule/event/guixmodules/">Foreign packages in GNU Guix</a> (Pjotr Prins)
</li></ul><p>On Saturday afternoon:<br /></p><ul><li><a href="https://fosdem.org/2016/schedule/event/deployments_with_gnu_guix/">Reproducible and Customizable Deployments with GNU Guix</a> (Ludovic Courtès, <a href="https://fosdem.org/2016/schedule/track/distributions/">distributions track</a>, room K.4.201)
</li><li><a href="https://fosdem.org/2016/schedule/event/guix_tox/">Guix-tox, a functional version of tox</a> (Cyril Roelandt, <a href="https://fosdem.org/2016/schedule/track/python/">Python track</a>, room UD2.218A)
</li></ul><p>On Sunday noon:<br /></p><ul><li><a href="https://fosdem.org/2016/schedule/event/hpc_bigdata_gnu_guix/">Reproducible and User-Controlled Package Management in HPC with GNU Guix</a> (Ricardo Wurmus, <a href="https://fosdem.org/2016/schedule/track/hpc,_big_data_and_data_science/">HPC track</a>, room AW1.126)
</li></ul><p>See you there!<br /></p><h4>About GNU Guix</h4><p><a href="http://www.gnu.org/software/guix">GNU Guix</a> is a functional package manager for the GNU system. The Guix System Distribution or GuixSD is an advanced distribution of the GNU system that relies on GNU Guix and <a href="http://www.gnu.org/distros/free-system-distribution-guidelines.html">respects the user's freedom</a>.<br /></p><p>In addition to standard package management features, Guix supports transactional upgrades and roll-backs, unprivileged package management, per-user profiles, and garbage collection. Guix uses low-level mechanisms from the Nix package manager, except that packages are defined as native <a href="http://www.gnu.org/software/guile">Guile</a> modules, using extensions to the <a href="http://schemers.org">Scheme</a> language. GuixSD offers a declarative approach to operating system configuration management, and is highly customizable and hackable.<br /></p><p>GuixSD can be used on an i686 or x86_64 machine. It is also possible to use Guix on top of an already installed GNU/Linux system, including on mips64el and armv7.<br /></p></div>https://guix.gnu.org/blog/2015/gnu-guix-at-fosdem//GNU Guix at FOSDEMLudovic Courtès2015-01-27T00:00:00+01002015-01-27T00:00:00+0100 Guix will be present at FOSDEM in Brussels, Belgium, with a talk entitled "The Emacs of Distros" this Saturday, at 3PM, in room H.1302. The talk will give an update on developments in Guix and the Guix System Distribution since last year, and will explain and demo the overall philosophy behind its design---how Guix seeks to empower users. Hope to see you there! UPDATE: Here is the video recording and slides from the talk. DOWNLOAD VIDEO (WebM, 47 minutes) …<p>Guix will be present at FOSDEM in Brussels, Belgium, with a talk entitled <a href="https://fosdem.org/2015/schedule/event/the_emacs_of_distros/">"The Emacs of Distros"</a> this Saturday, at 3PM, in room H.1302.</p><p>The talk will give an update on developments in Guix and the Guix System Distribution since last year, and will explain and demo the overall philosophy behind its design---how Guix seeks to empower users.</p><p>Hope to see you there!</p><p>UPDATE: Here is the video recording and <a href="https://www.gnu.org/software/guix/guix-fosdem-20150131.pdf">slides</a> from the talk.</p><video src="https://audio-video.gnu.org/video/misc/2015-01__GNU_Guix__The_Emacs_of_Distros.webm" controls="controls"><div class="action-box centered-text"><a class="button-big" href="https://audio-video.gnu.org/video/misc/2015-01__GNU_Guix__The_Emacs_of_Distros.webm">DOWNLOAD VIDEO</a><p>(WebM, 47 minutes)</p></div></video>https://guix.gnu.org/blog/2014/one-week-to-fosdem//One week to FOSDEM!Ludovic Courtès2014-01-25T00:00:00+01002014-01-25T00:00:00+0100 FOSDEM takes place next week. We'll be giving a talk about Guix and the GNU system on Sunday at noon, in the distributions devroom . Interested parties, freedom supporters, GNU hackers, and Schemers all alike are welcome to join in! UPDATE: Here is the video recording and slides from the talk. DOWNLOAD VIDEO (WebM, 55 minutes) …<p><a href="https://fosdem.org/2014/">FOSDEM</a> takes place next week. We'll be giving a <a href="https://fosdem.org/2014/schedule/event/gnuguix/">talk</a> about Guix and the GNU system on Sunday at noon, in the <a href="https://fosdem.org/2014/schedule/track/distributions/">distributions devroom</a>. Interested parties, freedom supporters, GNU hackers, and Schemers all alike are welcome to join in!</p><p>UPDATE: Here is the video recording and <a href="https://www.gnu.org/software/guix/guix-fosdem-20140201.pdf">slides</a> from the talk.</p><video src="https://video.fosdem.org/2014/H1302_Depage/Sunday/Growing_a_GNU_with_Guix.webm" controls="controls"><div class="action-box centered-text"><a class="button-big" href="https://video.fosdem.org/2014/H1302_Depage/Sunday/Growing_a_GNU_with_Guix.webm">DOWNLOAD VIDEO</a><p>(WebM, 55 minutes)</p></div></video>