Reproducible Builds: Reproducible Builds in April 2022
Welcome to the April 2022 report from the Reproducible Builds project! In these reports, we try to summarise the most important things that we have been up to over the past month. If you are interested in contributing to the project, please take a few moments to visit our Contribute page on our website.
News
Cory Doctorow published an interesting article this month about the possibility of Undetectable backdoors for machine learning models. Given that machine learning models can provide unpredictably incorrect results, Doctorow recounts that there exists another category of adversarial examples that comprise a gimmicked machine-learning input that, to the human eye, seems totally normal but which causes the ML system to misfire dramatically that permit the possibility of planting undetectable back doors into any machine learning system at training time .
Chris Lamb published two supporter spotlights on our blog: the first about Amateur Radio Digital Communications (ARDC) and the second about the Google Open Source Security Team (GOSST).
Piergiorgio Ladisa, Henrik Plate, Matias Martinez and Olivier Barais published a new academic paper titled A Taxonomy of Attacks on Open-Source Software Supply Chains (PDF):
This work proposes a general taxonomy for attacks on open-source supply chains, independent of specific programming languages or ecosystems, and covering all supply chain stages
from code contributions to package distribution. Taking the form of an attack tree, it covers 107 unique vectors, linked to 94 real-world incidents, and mapped to 33 mitigating safeguards.
Elsewhere in academia, Ly Vu Duc published his PhD thesis. Titled Towards Understanding and Securing the OSS Supply Chain (PDF), Duc s abstract reads as follows:
This dissertation starts from the first link in the software supply chain, developers . Since many developers do not update their vulnerable software libraries, thus exposing the user of their code to security risks. To understand how they choose, manage and update the libraries, packages, and other Open-Source Software (OSS) that become the building blocks of companies completed products consumed by end-users, twenty-five semi-structured interviews were conducted with developers of both large and small-medium enterprises in nine countries. All interviews were transcribed, coded, and analyzed according to applied thematic analysis
Upstream news
Filippo Valsorda published an informative blog post recently called How Go Mitigates Supply Chain Attacks outlining the high-level features of the Go ecosystem that helps prevent various supply-chain attacks.
There was new/further activity on a pull request filed against openssl by Sebastian Andrzej Siewior in order to prevent saved CFLAGS (which may contain the -fdebug-prefix-map=<PATH> flag that is used to strip an arbitrary the build path from the debug info if this information remains recorded then the binary is no longer reproducible if the build
directory changes.
Events
The Linux Foundation s SupplyChainSecurityCon, will take place June 21st 24th 2022, both virtually and in Austin, Texas. Long-time Reproducible Builds and openSUSE contributor Bernhard M. Wiedemann learned that he had his talk accepted, and will speak on Reproducible Builds: Unexpected Benefits and Problems on June 21st.
There will be an in-person Debian Reunion in Hamburg, Germany later this year, taking place from 23 30 May. Although this is a Debian event, there will be some folks from the broader Reproducible Builds community and, of course, everyone is welcome. Please see the event page on the Debian wiki for more information. 41 people have registered so far, and there s approx 10 on-site beds still left.
The minutes and logs from our April 2022 IRC meeting have been published. In case you missed this one, our next IRC meeting will take place on May 31st at 15:00 UTC on #reproducible-builds on the OFTC network.
Debian
Roland Clobus wrote another in-depth status update about the status of live Debian images, summarising the current situation that all major desktops build reproducibly with bullseye, bookworm and sid, including the Cinnamon desktop on bookworm and sid, but at a small functionality cost: 14 words will be incorrectly abbreviated . This work incorporated:
- Reporting an issue about unnecessarily modified timestamps in the daily Debian installer images. [ ]
- Reporting a bug against the
debian-installer: in order to use a suitable kernel version. (#1006800)
- Reporting a bug in:
texlive-binaries regarding the unreproducible content of .fmt files. (#1009196)
- Adding hacks to make the Cinnamon desktop image reproducible in bookworm and sid. [ ]
- Added a script to rebuild a live-build ISO image from a given timestamp. [
- etc.
On our mailing list, Venkata Pyla started a thread on the Debian debconf cache is non-reproducible issue while creating system images and Vagrant Cascadian posted an excellent summary of the reproducibility status of core package sets in Debian and solicited for similar information from other distributions.
Lastly, 122 reviews of Debian packages were added, 44 were updated and 193 were removed this month adding to our extensive knowledge about identified issues. A number of issue types have been updated as well, including timestamps_generated_by_hevea, randomness_in_ocaml_preprocessed_files, build_path_captured_in_emacs_el_file, golang_compiler_captures_build_path_in_binary and build_path_captured_in_assembly_objects,
Other distributions
Happy birthday to GNU Guix, which recently turned 10 years old! People have been sharing their stories, in which reproducible builds and bootstrappable builds are a recurring theme as a feature important to its users and developers. The experiences are available on the GNU Guix blog as well as a post on fossandcrafts.org
In openSUSE, Bernhard M. Wiedemann posted his usual monthly reproducible builds status report.
Upstream patches
The Reproducible Builds project detects, dissects and attempts to fix as many currently-unreproducible packages as possible. We endeavour to send all of our patches upstream where appropriate. This month, we wrote a large number of such patches, including:
-
Bernhard M. Wiedemann:
python-numcodecs (CPU-related issue)
salt (date issue)
golang-github-prometheus-node_exporter (date-related issue)
librsb (report compile-time CPU-detection)
-
Chris Lamb:
- #1009981 filed against
rsync.
- #1010279 filed against
python-iso8601.
- #1010316 filed against
python-cai.
- #1010318 filed against
datalad.
-
Johannes Schauer Marin Rodrigues:
- #1010368 filed against
python3.10.
-
Roland Clobus:
- #1009196 filed against
texlive-bin.
-
Vagrant Cascadian:
- #1009337 filed against
python-public.
- #1009339 filed against
python-gitlab.
- #1009342 filed against
xfce4-panel-profiles.
- #1009796 & #1009797 filed against
apt.
- #1009799 filed against
puppet.
- #1009931 filed against
gmp.
- #1009934 filed against
openssl.
- #1010043 filed against
serf.
- #1010233 filed against
glibc.
- #1010238 filed against
binutils.
- #1010378 filed against
leds-alix.
- #1010379 filed against
snacc.
- #1010414 filed against
libcec.
diffoscope
diffoscope is our in-depth and content-aware diff utility. Not only can it locate and diagnose reproducibility issues, it can provide human-readable diffs from many kinds of binary formats. This month, Chris Lamb prepared and uploaded versions 210 and 211 to Debian unstable, as well as noticed that some Python .pyc files are reported as data, so we should support .pyc as a fallback filename extension [ ].
In addition, Mattia Rizzolo disabled the Gnumeric tests in Debian as the package is not currently available [ ] and dropped mplayer from Build-Depends too [ ]. In addition, Mattia fixed an issue to ensure that the PATH environment variable is properly modified for all actions, not just when running the comparator. [ ]
Testing framework
The Reproducible Builds project runs a significant testing framework at tests.reproducible-builds.org, to check packages and other artifacts for reproducibility. This month, the following changes were made:
-
Daniel Golle:
- Prefer a different solution to avoid building all OpenWrt packages; skip packages from optional community feeds. [ ]
-
Holger Levsen:
-
Mattia Rizzolo:
-
Paul Spooren (OpenWrt-related changes):
-
Roland Clobus:
Lastly, node maintenance was also performed by Holger Levsen [ ][ ].
If you are interested in contributing to the Reproducible Builds project, please visit our Contribute page on our website. However, you can get in touch with us via:
-
IRC:
#reproducible-builds on irc.oftc.net.
-
Twitter: @ReproBuilds
-
Mailing list:
rb-general@lists.reproducible-builds.org
Filippo Valsorda published an informative blog post recently called How Go Mitigates Supply Chain Attacks outlining the high-level features of the Go ecosystem that helps prevent various supply-chain attacks.
There was new/further activity on a pull request filed against openssl by Sebastian Andrzej Siewior in order to prevent saved
CFLAGS (which may contain the -fdebug-prefix-map=<PATH> flag that is used to strip an arbitrary the build path from the debug info if this information remains recorded then the binary is no longer reproducible if the build
directory changes.
Events
The Linux Foundation s SupplyChainSecurityCon, will take place June 21st 24th 2022, both virtually and in Austin, Texas. Long-time Reproducible Builds and openSUSE contributor Bernhard M. Wiedemann learned that he had his talk accepted, and will speak on Reproducible Builds: Unexpected Benefits and Problems on June 21st.
There will be an in-person Debian Reunion in Hamburg, Germany later this year, taking place from 23 30 May. Although this is a Debian event, there will be some folks from the broader Reproducible Builds community and, of course, everyone is welcome. Please see the event page on the Debian wiki for more information. 41 people have registered so far, and there s approx 10 on-site beds still left.
The minutes and logs from our April 2022 IRC meeting have been published. In case you missed this one, our next IRC meeting will take place on May 31st at 15:00 UTC on #reproducible-builds on the OFTC network.
Debian
Roland Clobus wrote another in-depth status update about the status of live Debian images, summarising the current situation that all major desktops build reproducibly with bullseye, bookworm and sid, including the Cinnamon desktop on bookworm and sid, but at a small functionality cost: 14 words will be incorrectly abbreviated . This work incorporated:
- Reporting an issue about unnecessarily modified timestamps in the daily Debian installer images. [ ]
- Reporting a bug against the
debian-installer: in order to use a suitable kernel version. (#1006800)
- Reporting a bug in:
texlive-binaries regarding the unreproducible content of .fmt files. (#1009196)
- Adding hacks to make the Cinnamon desktop image reproducible in bookworm and sid. [ ]
- Added a script to rebuild a live-build ISO image from a given timestamp. [
- etc.
On our mailing list, Venkata Pyla started a thread on the Debian debconf cache is non-reproducible issue while creating system images and Vagrant Cascadian posted an excellent summary of the reproducibility status of core package sets in Debian and solicited for similar information from other distributions.
Lastly, 122 reviews of Debian packages were added, 44 were updated and 193 were removed this month adding to our extensive knowledge about identified issues. A number of issue types have been updated as well, including timestamps_generated_by_hevea, randomness_in_ocaml_preprocessed_files, build_path_captured_in_emacs_el_file, golang_compiler_captures_build_path_in_binary and build_path_captured_in_assembly_objects,
Other distributions
Happy birthday to GNU Guix, which recently turned 10 years old! People have been sharing their stories, in which reproducible builds and bootstrappable builds are a recurring theme as a feature important to its users and developers. The experiences are available on the GNU Guix blog as well as a post on fossandcrafts.org
In openSUSE, Bernhard M. Wiedemann posted his usual monthly reproducible builds status report.
Upstream patches
The Reproducible Builds project detects, dissects and attempts to fix as many currently-unreproducible packages as possible. We endeavour to send all of our patches upstream where appropriate. This month, we wrote a large number of such patches, including:
-
Bernhard M. Wiedemann:
python-numcodecs (CPU-related issue)
salt (date issue)
golang-github-prometheus-node_exporter (date-related issue)
librsb (report compile-time CPU-detection)
-
Chris Lamb:
- #1009981 filed against
rsync.
- #1010279 filed against
python-iso8601.
- #1010316 filed against
python-cai.
- #1010318 filed against
datalad.
-
Johannes Schauer Marin Rodrigues:
- #1010368 filed against
python3.10.
-
Roland Clobus:
- #1009196 filed against
texlive-bin.
-
Vagrant Cascadian:
- #1009337 filed against
python-public.
- #1009339 filed against
python-gitlab.
- #1009342 filed against
xfce4-panel-profiles.
- #1009796 & #1009797 filed against
apt.
- #1009799 filed against
puppet.
- #1009931 filed against
gmp.
- #1009934 filed against
openssl.
- #1010043 filed against
serf.
- #1010233 filed against
glibc.
- #1010238 filed against
binutils.
- #1010378 filed against
leds-alix.
- #1010379 filed against
snacc.
- #1010414 filed against
libcec.
diffoscope
diffoscope is our in-depth and content-aware diff utility. Not only can it locate and diagnose reproducibility issues, it can provide human-readable diffs from many kinds of binary formats. This month, Chris Lamb prepared and uploaded versions 210 and 211 to Debian unstable, as well as noticed that some Python .pyc files are reported as data, so we should support .pyc as a fallback filename extension [ ].
In addition, Mattia Rizzolo disabled the Gnumeric tests in Debian as the package is not currently available [ ] and dropped mplayer from Build-Depends too [ ]. In addition, Mattia fixed an issue to ensure that the PATH environment variable is properly modified for all actions, not just when running the comparator. [ ]
Testing framework
The Reproducible Builds project runs a significant testing framework at tests.reproducible-builds.org, to check packages and other artifacts for reproducibility. This month, the following changes were made:
-
Daniel Golle:
- Prefer a different solution to avoid building all OpenWrt packages; skip packages from optional community feeds. [ ]
-
Holger Levsen:
-
Mattia Rizzolo:
-
Paul Spooren (OpenWrt-related changes):
-
Roland Clobus:
Lastly, node maintenance was also performed by Holger Levsen [ ][ ].
If you are interested in contributing to the Reproducible Builds project, please visit our Contribute page on our website. However, you can get in touch with us via:
-
IRC:
#reproducible-builds on irc.oftc.net.
-
Twitter: @ReproBuilds
-
Mailing list:
rb-general@lists.reproducible-builds.org
Roland Clobus wrote another in-depth status update about the status of live Debian images, summarising the current situation that all major desktops build reproducibly with bullseye, bookworm and sid, including the Cinnamon desktop on bookworm and sid, but at a small functionality cost: 14 words will be incorrectly abbreviated . This work incorporated:
- Reporting an issue about unnecessarily modified timestamps in the daily Debian installer images. [ ]
- Reporting a bug against the
debian-installer: in order to use a suitable kernel version. (#1006800) - Reporting a bug in:
texlive-binariesregarding the unreproducible content of.fmtfiles. (#1009196) - Adding hacks to make the Cinnamon desktop image reproducible in bookworm and sid. [ ]
- Added a script to rebuild a live-build ISO image from a given timestamp. [
- etc.
Lastly, 122 reviews of Debian packages were added, 44 were updated and 193 were removed this month adding to our extensive knowledge about identified issues. A number of issue types have been updated as well, including
timestamps_generated_by_hevea, randomness_in_ocaml_preprocessed_files, build_path_captured_in_emacs_el_file, golang_compiler_captures_build_path_in_binary and build_path_captured_in_assembly_objects,
Other distributions
Happy birthday to GNU Guix, which recently turned 10 years old! People have been sharing their stories, in which reproducible builds and bootstrappable builds are a recurring theme as a feature important to its users and developers. The experiences are available on the GNU Guix blog as well as a post on fossandcrafts.org
In openSUSE, Bernhard M. Wiedemann posted his usual monthly reproducible builds status report.
Upstream patches
The Reproducible Builds project detects, dissects and attempts to fix as many currently-unreproducible packages as possible. We endeavour to send all of our patches upstream where appropriate. This month, we wrote a large number of such patches, including:
-
Bernhard M. Wiedemann:
python-numcodecs (CPU-related issue)
salt (date issue)
golang-github-prometheus-node_exporter (date-related issue)
librsb (report compile-time CPU-detection)
-
Chris Lamb:
- #1009981 filed against
rsync.
- #1010279 filed against
python-iso8601.
- #1010316 filed against
python-cai.
- #1010318 filed against
datalad.
-
Johannes Schauer Marin Rodrigues:
- #1010368 filed against
python3.10.
-
Roland Clobus:
- #1009196 filed against
texlive-bin.
-
Vagrant Cascadian:
- #1009337 filed against
python-public.
- #1009339 filed against
python-gitlab.
- #1009342 filed against
xfce4-panel-profiles.
- #1009796 & #1009797 filed against
apt.
- #1009799 filed against
puppet.
- #1009931 filed against
gmp.
- #1009934 filed against
openssl.
- #1010043 filed against
serf.
- #1010233 filed against
glibc.
- #1010238 filed against
binutils.
- #1010378 filed against
leds-alix.
- #1010379 filed against
snacc.
- #1010414 filed against
libcec.
diffoscope
diffoscope is our in-depth and content-aware diff utility. Not only can it locate and diagnose reproducibility issues, it can provide human-readable diffs from many kinds of binary formats. This month, Chris Lamb prepared and uploaded versions 210 and 211 to Debian unstable, as well as noticed that some Python .pyc files are reported as data, so we should support .pyc as a fallback filename extension [ ].
In addition, Mattia Rizzolo disabled the Gnumeric tests in Debian as the package is not currently available [ ] and dropped mplayer from Build-Depends too [ ]. In addition, Mattia fixed an issue to ensure that the PATH environment variable is properly modified for all actions, not just when running the comparator. [ ]
Testing framework
The Reproducible Builds project runs a significant testing framework at tests.reproducible-builds.org, to check packages and other artifacts for reproducibility. This month, the following changes were made:
-
Daniel Golle:
- Prefer a different solution to avoid building all OpenWrt packages; skip packages from optional community feeds. [ ]
-
Holger Levsen:
-
Mattia Rizzolo:
-
Paul Spooren (OpenWrt-related changes):
-
Roland Clobus:
Lastly, node maintenance was also performed by Holger Levsen [ ][ ].
If you are interested in contributing to the Reproducible Builds project, please visit our Contribute page on our website. However, you can get in touch with us via:
-
IRC:
#reproducible-builds on irc.oftc.net.
-
Twitter: @ReproBuilds
-
Mailing list:
rb-general@lists.reproducible-builds.org
-
Bernhard M. Wiedemann:
python-numcodecs(CPU-related issue)salt(date issue)golang-github-prometheus-node_exporter(date-related issue)librsb(report compile-time CPU-detection)
-
Chris Lamb:
- #1009981 filed against
rsync. - #1010279 filed against
python-iso8601. - #1010316 filed against
python-cai. - #1010318 filed against
datalad.
- #1009981 filed against
-
Johannes Schauer Marin Rodrigues:
- #1010368 filed against
python3.10.
- #1010368 filed against
-
Roland Clobus:
- #1009196 filed against
texlive-bin.
- #1009196 filed against
-
Vagrant Cascadian:
- #1009337 filed against
python-public. - #1009339 filed against
python-gitlab. - #1009342 filed against
xfce4-panel-profiles. - #1009796 & #1009797 filed against
apt. - #1009799 filed against
puppet. - #1009931 filed against
gmp. - #1009934 filed against
openssl. - #1010043 filed against
serf. - #1010233 filed against
glibc. - #1010238 filed against
binutils. - #1010378 filed against
leds-alix. - #1010379 filed against
snacc. - #1010414 filed against
libcec.
- #1009337 filed against
diffoscope
diffoscope is our in-depth and content-aware diff utility. Not only can it locate and diagnose reproducibility issues, it can provide human-readable diffs from many kinds of binary formats. This month, Chris Lamb prepared and uploaded versions 210 and 211 to Debian unstable, as well as noticed that some Python .pyc files are reported as data, so we should support .pyc as a fallback filename extension [ ].
In addition, Mattia Rizzolo disabled the Gnumeric tests in Debian as the package is not currently available [ ] and dropped mplayer from Build-Depends too [ ]. In addition, Mattia fixed an issue to ensure that the PATH environment variable is properly modified for all actions, not just when running the comparator. [ ]
Testing framework
The Reproducible Builds project runs a significant testing framework at tests.reproducible-builds.org, to check packages and other artifacts for reproducibility. This month, the following changes were made:
-
Daniel Golle:
- Prefer a different solution to avoid building all OpenWrt packages; skip packages from optional community feeds. [ ]
-
Holger Levsen:
-
Mattia Rizzolo:
-
Paul Spooren (OpenWrt-related changes):
-
Roland Clobus:
Lastly, node maintenance was also performed by Holger Levsen [ ][ ].
If you are interested in contributing to the Reproducible Builds project, please visit our Contribute page on our website. However, you can get in touch with us via:
-
IRC:
#reproducible-builds on irc.oftc.net.
-
Twitter: @ReproBuilds
-
Mailing list:
rb-general@lists.reproducible-builds.org
The Reproducible Builds project runs a significant testing framework at tests.reproducible-builds.org, to check packages and other artifacts for reproducibility. This month, the following changes were made:
-
Daniel Golle:
- Prefer a different solution to avoid building all OpenWrt packages; skip packages from optional community feeds. [ ]
- Holger Levsen:
- Mattia Rizzolo:
- Paul Spooren (OpenWrt-related changes):
- Roland Clobus:
If you are interested in contributing to the Reproducible Builds project, please visit our Contribute page on our website. However, you can get in touch with us via:
-
IRC:
#reproducible-buildsonirc.oftc.net. - Twitter: @ReproBuilds
-
Mailing list:
rb-general@lists.reproducible-builds.org
TL;DR: firmware support in Debian sucks, and we need to change
this. See the "My preference, and rationale" Section below.
In my opinion, the way we deal with (non-free) firmware in Debian is a
mess, and this is hurting many of our users daily. For a long time
we've been pretending that supporting and including (non-free)
firmware on Debian systems is not necessary. We don't want to have
to provide (non-free) firmware to our users, and in an ideal world we
wouldn't need to. However, it's very clearly no longer a sensible path
when trying to support lots of common current hardware.
Background - why has (non-free) firmware become an issue?
Firmware is the low-level software that's designed to make
hardware devices work. Firmware is tightly coupled to the hardware,
exposing its features, providing higher-level functionality and
interfaces for other software to use. For a variety of reasons, it's
typically not Free Software.
For Debian's purposes, we typically separate firmware from
software by considering where the code executes (does it run on a
separate processor? Is it visible to the host OS?) but it can be
difficult to define a single reliable dividing line here. Consider the
Intel/AMD CPU microcode packages, or the U-Boot firmware packages as
examples.
In times past, all necessary firmware would normally be included
directly in devices / expansion cards by their vendors. Over time,
however, it has become more and more attractive (and therefore more
common) for device manufacturers to not include complete firmware
on all devices. Instead, some devices just embed a very simple set
of firmware that allows for upload of a more complete firmware "blob"
into memory. Device drivers are then expected to provide that blob
during device initialisation.
There are a couple of key drivers for this change:











The following contributors got their Debian Developer accounts in the last two months:















Debian 11 (codename Bullseye) was recently released. This was the smoothest upgrade I've experienced in some 20 years as a Debian user. In my haste, I completely forgot to first upgrade dpkg and apt, doing a straight dist-upgrade. Nonetheless, everything worked out of the box. No unresolved dependency cycles. Via my last-mile Gigabit connection, it took about 5 minutes to upgrade and reboot. Congratulations to everyone who made this possible!
Since the upgrade, only a handful of bugs were found. I filed bug reports. Over these past few days, maintainers have started responding. In once particular case, my report exposed a CVE caused by copy-pasted code between two similar packages. The source package fixed their code to something more secure a few years ago, while the destination package missed it. The situation has been brought to Debian's security team's attention and should be fixed over the next few days.
Afterthoughts
Having recently experienced hard-disk problems on my main desktop, upgrading to Bullseye made me revisit a few issues. One of these was the possibility of transiting to BTRFS. Last time I investigated the possibility was back when Ubuntu briefly switched their default filesystem to BRTFS. Back then, my feeling was that BRTFS wasn't ready for mainstream. For instance, the utility to convert an EXT2/3/4 partition to BTRFS corrupted the end of the partition. No thanks. However, in recent years, many large-scale online services have migrated to BRTFS and seem to be extremely happy with the result. Additionally, Linux kernel 5 added useful features such as background defragmentation. This got me pondering whether now would be a good time to migrate to BRTFS. Sadly it seems that the stock kernel shipping with Bullseye doesn't have any of these advanced features enabled in its configuration. Oh well.
Geode
The only point that has become problematic is my Geode hosts. For one things, upstream Rust maintainers have decided to ignore the fact that i686 is a specification and arbitrarily added compiler flags for more recent x86-32 CPUs to their i686 target. While Debian Rust maintainers have purposely downgraded the target, RustC still produces binaries that the Geode LX (essentially an i686 without PAE) cannot process. This affects fairly basic packages such as librsvg, which breaks SVG image support for a number of dependencies. Additionally, there's been persistent problems with systemd crashing on my Geode hosts whenever daemon-reload is issued. Then, a few days ago, problems started occurring with C++ binaries, because GCC-11 upstream enabled flags for more recent CPUs in their default i686 target. While I realize that SSE and similar recent CPU features produce better binaries, I cannot help but feel that treating CPU targets as anything else than a specification is a mistake. i686 is a specification. It is not a generic equivalent to x86-32.
I first started using
Hindus comprise 83% of Indian couples with more than two child children
If one wants to, one can read a bit more about the Uttar Pradesh Population bill 


"Again, we see there is nothing you can possess which I cannot take away."
The imagery of the ark appears to be borrowed from James Tissot's The Ark Passes Over the Jordan, part of the fin de siecle fascination with the occult and (ironically enough given the background of Raiders' director), a French Catholic revival.

I worked on research on FOSS foundations and published two reports:
Growing Open Source Projects with a Stable Foundation
This primer covers non-technical aspects that the majority of projects will have to consider at some point. It also explains how FOSS foundations can help projects grow and succeed.
This primer explains: