NixOS

Blog

#05 - NixOS Weekly

— Published on

Announcements

A DevSecOps framework powered by Nix and the NixOS module system. Our goal is to help people setup a powerful CI/CD system in just a few steps, in any provider, while lowering the barrier to entry for the community.

The Ongoing effort at bumping LLVM and macOS SDK.

Tutorials & Resources

A Terraform provider for declaratively managing Hydra projects and jobsets, Determinate Systems' first open source release.

A NixOS module to help run modded minecraft servers, as a Nix flake, as well as a simple rsync wrapper script to help manage remote state of such a server.

University lecture + assignment + tutorial on how to build a shell for the nix build sandbox with automated tests suite

Configured for Nix, it gives you pre-built, ephemeral reproducible development environments in the cloud.

Experimental attempt of packaging a demanding and somewhat complex (in terms of wine setup) wine application by dynamically creating a wine prefix from the nix store path of a generated wrapper script.

Or how to teach your initrd to add features to a filesystem on bootup.

A Nix Flake to build NixOS and run it on one of several KVM-Hypervisors (cloud-hypervisor, qemu, firecracker, kvmtool, crosvm).

Jobs

Contribute to NixOS Weekly

This work would not be possible without the many contributions of the community.

You can help too! Create or comment on the pull request for the next edition or look at the issue tracker to add other improvements.

#04 - NixOS Weekly

— Published on

Announcements

Jonathan Ringer, release manager, announces NixOS 21.05 release with 1745 contributors in 33474 commits.

Replit replaces Docker with Nix and drastically improves support for languages.

Please thank him for all his hard work!

Domen Kožar introduces the Nix ecosystem.

Nix in Production with Domen Kožar

NixNG is a proof-of-concept distribution which works very similarly to NixOS, but aims to run well in containers and also smells more BSD-esque. Currently, it uses runit instead of systemd, but we're open to multi-init support and also to our own init system.

Tutorials & Resources

A template Nix setup for new Rust projects.

Everything that you need to read, write and understand Nix expressions.

Utility to easily integrate Cargo projects with Nix. Tries to handle (almost) everything for you and enables configuration from Cargo.toml files.

Utility to set up a template that uses nix-cargo-integration.

Use Nix flakes without any fluff! (extension of flake-utils)

Learn about Nix, Nix flakes, and how to use Nix flakes to build applications in various languages.

With the Nix process management framework you can write high-level deployment specifications of running processes, that can be managed with a variety of process managers (e.g. systemd, supervisord, launchd, s6-rc). Furthermore, you can construct multiple instances of the same processes and deploy them as an unprivileged user. The testing framework allows you to validate a service under all these conditions.

Use Nix Flakes to build and run a 64 bit RiscV Kernel written in Rust.

Jobs

Contribute to NixOS Weekly

This work would not be possible without the many contributions of the community.

You can help too! Create or comment on the pull request for the next edition or look at the issue tracker to add other improvements.

#03 - NixOS Weekly

— Published on

Announcements

RFC 0085 has been accepted!

Nix - Static, Permissionless, Install-free, Pre-configured

A two month train and work program from August 2nd to October 15th 2021 - great for anyone who wants to rapidly increase their Nix skills while doing useful work.

Tutorials & Resources

Video explains how to improve the reproducibility of nix expressions, why and for what we may need flakes and how to use them.

Jobs

Drive the adoption of Nix at a secure compute startup by developing and maintaining our CI pipeline and infrastructure.

Contribute to NixOS Weekly

This work would not be possible without the many contributions of the community.

You can help too! Create or comment on the pull request for the next edition or look at the issue tracker to add other improvements.

#02 - NixOS Weekly

— Published on

Announcements

flox makes it easy to build software or manage development environments with Nix at any scale.

Distributed trust and reproducibility tracking for binary caches.

A call for companies/developers to contribute financially towards addressing major macOS issues in the ecosystem.

Tutorials

Resources

Fuse filesystem that returns symlinks to executables based on the PATH of the requesting process (fixes shebang problems on NixOS).

Add additional checks and more information from build logs and outputs to the reports generated by nixpkgs-review.

A content addressable store for Nix with Théophane Hufschmitt and Binary Verification with Trustix starring Adam Höse.

Jobs

Contribute to NixOS Weekly

This work would not be possible without the many contributions of the community.

You can help too! Create or comment on the pull request for the next edition or look at the issue tracker to add other improvements.

#01 - NixOS Weekly

— Published on

Announcements

The next NixOS stable release will be 21.05.

Agenix is a command-line tool for managing secrets encrypted with your existing SSH keys. It includes a NixOS module, age, for adding encrypted secrets into the Nix store and decrypting them.

Tutorials

As the raspberry pi 4 is still not officially supported, this is a tutorial on how to get a base installation going if necessary without a screen.

Resources

Generate small texlive environments for your document.

Run unpatched dynamic binaries on NixOS.

Additional NixOS install images for Amazon (aarch64, x86_64), openstack and kexec.

Contribute to the NixOS Weekly

This work would not be possible without the many contributions of the community.

You can help too! Create or comment on the pull request for the next edition or look at the issue tracker to add other improvements.

#09 - NixOS Weekly

— Published on

Announcements

A database and search engine for the entire history of each package at Nixpkgs.

The trust of who created binary cache contents comes from who owns the private signing key.

This approach has a number of disadvantages when it comes to lifecycle in teams, so API tokens are now the default way to manage write access.

Tutorials

Resources

Annotated code showing you how to automatically create searchable scans of all the documents you receive in the post.

Jobs

Contribute to NixOS Weekly Newsletter

This work would not be possible without the many contributions of the community.

You can help too! Create or comment on the pull request for the next edition or look at the issue tracker to add other improvements.

#08 - NixOS Weekly

— Published on

Announcements

Conference dates: Oct. 16th – 18th, 2020. Live streaming on 2020.nixcon.org

Help stabilize NixOS for the upcoming 20.09 Release

Based on your feedback there are two minor changes to how garbage collection behaves in Cachix.

Tutorials & Resources

An Emacs Lisp reader in Nix.

Nixify your DConf files (Gnome3 configuration) as expected by Home Manager's dconf settings.

A tool made to adopt Nix in your Python project, and to contribute to Nixpkgs with package definitions.

Demonstrates how we can combine Nix and Docker in unorthodox ways -- we can replace traditional Docker images for dependency management by a shared Nix store, use Docker as a backend for my experimental Nix process management framework and use Disnix as a simple orchestrator for Docker containers.

A fast Documentation Searcher for Nix. Its database consists of Nixpkgs Documentation, Nixpkgs Comments, Nixpkgs Tree (pkgs., pkgs.lib.), NixOS Options and Home-Manager Options.

Installing older versions of packages in Nix is easy but currently there is no official way to find out what revision has the package version that I need.

Monkeying around with nix for HPC systems which have no root access and NFS filesystems.

First preliminary release of bbb4nix, a way to run BigBlueButton on NixOS.

Contribute to NixOS Weekly Newsletter

This work would not be possible without the many contributions of the community.

You can help too! Create or comment on the pull request for the next edition or look at the issue tracker to add other improvements.

#07 - NixOS Weekly

— Published on

Announcements

Nixpkgs now supports cross-compiling to the Redox operating system. The redoxpkgs overlay has been created to fix packages for Redox

Tutorials & Resources

What is nix-shell and how to use it.

WFVM automatically bootstraps a Windows image inside QEMU that you can use to run unit tests on Hydra for example.

NixOS-based Django deployment

Convert systemd service files to nixpkgs syntax

Explores the concepts behind Nix and Docker, explains in which ways they are different and similar, and shows some examples how both tools can be combined.

Atomic secret provisioning for NixOS based on sops.

An alternative solution (in-development) to convert a pom.xml file into a Nix expression to help package Maven applications within Nix.

Contribute to NixOS Weekly Newsletter

This work would not be possible without the many contributions of the community.

You can help too! Create or comment on the pull request for the next edition or look at the issue tracker to add other improvements.

#06 - NixOS Weekly

— Published on

Announcements

Nearly every C++ file in the repo was touched! This will be the biggest PR, by far, for this project. Getting this in is a major feat!

Next up, I'm looking forward to finishing out this phase with showing the lines of code for errors, and supporting show-trace in the new format. I expect that PR to be much easier, both to make the changes and to review them.

Tutorials & Resources

An introduction to the Nix ecosystem and a collection of resources to get started.

Thorough overview of NixOS.

Introduction how to get started with Nix for development in teams.

Introduction for achieving reproducibility with Nix.

A few short notes what to avoid when writing Nix.

How Status.im, a messaging app, uses Nix to achieve the 'holy grail' of reproducible builds.

How nixpkgs links against macOS's system libraries.

Tutorial with step by step instructions for installing NixOS on tmpfs. Also an introduction to how to have a usable /home on tmpfs.

Jobs

Shopify is looking to grow a Nix team to continue its roll-out of Nix-based environments to development, CI, and production, across macOS and Linux.

Contribute to NixOS Weekly Newsletter

This work would not be possible without the many contributions of the community.

You can help too! Create or comment on the pull request for the next edition or look at the issue tracker to add other improvements.

#05 - NixOS Weekly

— Published on

Announcements

This is the first in a series of blog posts intended to provide a gentle introduction to flakes, a new Nix feature that improves reproducibility, composability and usability in the Nix ecosystem.

This blog post describes why flakes were introduced, and give a short tutorial on how to use them.

Tutorials & Resources

Over the past year and a bit, Shopify has been progressively rebuilding parts of our developer tooling with Nix.

Burke Libbey dives into explaining Nix before diving into what's planned for the future.

Have you ever been burned by forgetting to update a hash of a Fixed Output Derivation? Or realizing it hasn't worked since a while during an update?

This article explores your options at re-running fixed output derivation on input changes.

A Mumble server has been provisioned for use by the Nix community. Feel free to lurk in the lobby or create your own channels for hosting meetings and discussions.

Join with nix run nixpkgs.mumble -c mumble mumble://$USER@mumble.nix-community.org.

A tool to find all past versions of a package that were available in a channel, the revision you can download it from, and a copy-paste command for how to install it.

Showcase of Nix usage for various technologies.

Contribute to NixOS Weekly Newsletter

This work would not be possible without the many contributions of the community.

You can help too! Create or comment on the pull request for the next edition or look at the issue tracker to add other improvements.

#04 - NixOS Weekly

— Published on

Announcements

NixOS 20.03 “Markhor” had 1014 people contribute 21597 contributions.

Declarative Kiosk systems built with NixOS.

The marketing team was founded and had their few meetings. They already improved the website (see Learn page). If you want to join, you will find the details in the announcement post. Let's improve the presentation of Nix/NixOS!

A tool for updating nix packages semi-automatically

Tutorials & Resources

How simple nix-shell integration can really make an impact on developer productivity.

Graham talks about why and how he erases his systems on each boot.

A long report on building a web app with functional programming - Haskell, Elm and NixOS.

Jobs

Contribute to NixOS Weekly Newsletter

This work would not be possible without the many contributions of the community.

You can help too! Create or comment on the pull request for the next edition or look at the issue tracker to add other improvements.

#03 - NixOS Weekly

— Published on

nixbuild.net is nix build as a service, allowing you to easily run distributed builds without having to setup, scale and maintain build servers.

Crowdfunding campaign to fund a complete rework of error messages in Nix to improve beginner's experience and make working with the tooling pleasant.

contextflow is an award winning Vienna-based startup using AI on 3D medical images to improve radiology workflows. We are looking for a fulltime Senior DevOps and Backend Engineer (m/f) with NixOs experience.

nix-freeze-tree is a utility that walks a directory tree, and writes out Nix expressions which rebuild that tree. The generated expressions have two important properties: a) Each file in the tree is built by a separate fixed-output derivation, and b) Directories are built by derivations that symlink their contents recursively. If you are using nix copy to ship a derivation between nix stores, copying the derivation built by evaluating the output of nix-freeze-tree can reuse existing files in the destination store, as fixed-output derivations can be checked against a hash before copying.

Christine talks about packaging Go and Elm application with Nix and publishing binaries to Cachix.

Christine talks about packaging and developing Rust with Nix.

It took less than 3 years since previous 100,000 milestone

Yann talks about how to package Coq with Nix using a simple tutorial.

We want to try to use nix(pkgs) to build perfectly reproducible environments in a context where the users wouldn’t even be aware that nix is a thing that exists (unless, obviously, they want to know). This is in the context of a bioinformatics application, written in Haskell, but the nixpkgs integration can be done without writing Haskell code (NGLess)

Thomas has written a tutorial covering the problem that overlays are trying to solve, as well as how to use them.

made by @FRidh

Contribute to NixOS Weekly Newsletter

This work would not be possible without the many contributions of the community.

You can help too! Create or comment on the pull request for the next edition or look at the issue tracker to add other improvements.

#02 - NixOS Weekly

— Published on

A Rust rewrite of unmaintained nix-deploy. Any feedback appreciated!

Caching layer for nix-shell featuring instant startup time on subsequent runs. It supports NixOS and Linux.

An explanation of __structuredAttrs in stdenv and why enabling it would be desirable.

A small command-line tool and python library that makes bisecting nix builds much more convenient. It prevents common pitfalls in simple cases and saves a lot of time in more complicated ones.

Cachix infrastructure has been revamped to scale with recent growth in traffic.

Contribute to NixOS Weekly Newsletter

This work would not be possible without the many contributions of the community.

You can help too! Create or comment on the pull request for the next edition or look at the issue tracker to add other improvements.

#01 - NixOS Weekly

— Published on

The Nix Notes is a collection of short notes about Nix, each contributing to the same virtual machine image. The notes show how to deploy the image to Digital Ocean, update the running virtual machine without recreating it, and more.

The python az package, has been added. Replacing the deprecated node azure package.

Summary of lessons learned at NixCon 2019

Simple application VMs (hypervisor-based sandbox) based on Nix package manager.

The Final Comment Period for RFC 0046 has started with disposition to merge and, barring any blocking issues, will be merged after 2020-01-12. Your opinions, comments, and approvals are welcome!

Contribute to NixOS Weekly Newsletter

This work would not be possible without the many contributions of the community.

You can help too! Create or comment on the pull request for the next edition or look at the issue tracker to add other improvements.

#14 - Hercules CI launch, performance improvements in nixpkgs, single dependency kubernetes clusters

— Published on

Announcing general availability of continuous integration specialized for Nix projects.

Performance improvements, a bugfix to IFD and better onboarding experience.

Improving Nixpkgs setup by avoiding subshells in processing dependencies.

Trying out Nix on your aarch64 or i686 Android device is now easier than ever.

It's time to clean up stdenv! By making our code less fragile, we increase the budget for interesting features. There should be plenty of failures, but many of them independent so we can easily parallelize the work to fix. Please come pitch in!

Contribute to NixOS Weekly Newsletter

This work would not be possible without the many contributions of the community.

You can help too! Create or comment on the pull request for the next edition or look at the issue tracker to add other improvements.

#13 - NixOS 19.09 release, cache.nixos.org improvements, github actions for Nix, a number of talks

— Published on

Katharina explains her recently merged Open Container Initiative support in NixOS.

Vaibhav demonstrates how NixOps works by implementing a small deploy script from scratch.

Emacs installations for continuous integration

On 6th of September, Cachix experienced 3 hours of downtime.

We’d like to let you know exactly what happened and what measures we have taken to prevent such an event from happening in the future.

Start using GitHub Actions with Nix&Cachix with a simple snippet of YAML.

Hercules CI Agent can now be deployed with terraform with only a few steps.

The Final Comment Period for RFC 0052 has started and, barring any blocking issues, will be merged after 2019-10-18. Your opinions, comments, and approvals are welcome!

Building Docker images from Nix expressions in a Kubernetes cluster with the Tekton Pipeline project.

Contribute to NixOS Weekly Newsletter

This work would not be possible without the many contributions of the community.

You can help too! Create or comment on the pull request for the next edition or look at the issue tracker to add other improvements.

#12 - Mobile NixOS, import-from-derivation, one-page introduction, runtime type-checker, a job

— Published on

Vincent wrote a one-page introduction to Nix language, covering language features you'll most likely encounter from day one.

Using the boot.loader.grub.mirroredBoots module to have redundant boots with an encrypted ZFS mirror.

Serokell is looking for remote full-time Nix SREs.

Yants is a small runtime type-checker for Nix that can check primitives (int, string, etc.) , simple polymorphic types (option, list, attrs), structs/records, enums, functions and more.

It features pattern matching for enum variants, pretty-printed function types and other niceties! Check out the link for screenshots.

Robin goes into the details of RFC process that Nix community established last year.

Vaibhav shows how to use Nix to package iHaskell into a docker container.

Samuel announced full-time involvement into NixOS mobile and the current state of the project.

Git hooks, packaged with Nix, enforced at development time and on a CI.

Matthew explains how to use multiple revisions of nixpkgs to mix stable vs. bleeding edge packages.

Hercules CI gained a crucial feature for development teams. The post goes into the detail how evaluation and realization phases work in Nix and why sometimes mixing the two makes sense.

Contribute to NixOS Weekly Newsletter

This work would not be possible without the many contributions of the community.

You can help too! Create or comment on the pull request for the next edition or look at the issue tracker to add other improvements.

#11 - Nixery, nixfmt and Cachix releases, NixCon 2019 tickets, a job and first impressions post

— Published on

Non-NixOS users are encouraged to try and report whether the improved autoconf checks make it easier to build it from source.

It also demonstrates how meson-build-system-based projects can be configured to complain loudly about any missing dependencies, as opposed to silently disabling features (like many autoconf based build systems do).

Upgrade via the usual: $ nix-env -iA cachix -f https://cachix.org/api/v1/install

Notable improvement is the default compression level which has been lowered to increase bandwidth throughput and it's overridable via --compression-level.

Preview access for the CI has been given to all subscribers as we've reached feature parity for the public launch.

Please try it out on your code and give us feedback!

Contribute to NixOS Weekly Newsletter

This work would not be possible without the many contributions of the community.

You can help too! Create or comment on the pull request for the next edition or look at the issue tracker to add other improvements.

#10 - Redox on NixOS, ad-hoc container images, nix-mode.el, static site deploys, a job

— Published on

An attempt to embrace Nix instead of constantly working around the limitations to build Redox OS. The ultra optimistic long-term goal is to be a competing alternative to the GNU make build system the project currently uses, to make Redox builds reproducible and reliable.

made by @tazjin

EuAndreh goes through the journey of installing NixOS on their laptop.

Added support for the indentation function smie-indent-line in NixOS/nix-mode#79 & NixOS/nix-mode#80. Thanks to @j-piecuch and @matthewbauer for the work and testing.

For our Software Infrastructure team, which is responsible for our build, packaging, CI and deployment tooling. We’re using Nix to package our complex C++ and Python stack, and as part of our wider development environment for our fast-moving trading and research applications.

Tungsten Fabric is the open-source offering of Contrail by Juniper Networks - a powerful SDN solution used by many big names in the IT industry. The nixpkgs-tungsten project provides tools and workflows that make it much easier to work with, and on Tungsten Fabric itself.

Contribute to NixOS Weekly Newsletter

This work would not be possible without the many contributions of the community.

You can help too! Create or comment on the pull request for the next edition or look at the issue tracker to add other improvements.

#09 - autobake, setup.nix for Python, macOS stdenv updates, nixfmt, Elm tooling, gitignore and a job

— Published on

Asko proposes a new Python development tool

Matthew's overview of recent stdenv updates, which also bumps minimal supported version to 10.12.

Serokell releases nixfmt 0.1 with a focus on speed and are looking for feedback.

Linux and macOS packages tooling for Elm: elm-test, elm-verify-examples, elm-analyse, elm-doc-preview

who will be responsible for maintaining and developing services such as build system, monitoring, name resolution, configuration management, and the like. Groq uses formal methods, Haskell, and NixOS to build processors.

Robert announces gitignore that precisely emulates git behaviour and goes into details how it compares with existing solutions

Contribute to NixOS Weekly Newsletter

This work would not be possible without the many contributions of the community.

You can help too! Create or comment on the pull request for the next edition or look at the issue tracker to add other improvements.

#08 - C++ packaging, NixCon 2019, job, cross-compile RPI, Haskell IDE Engine

— Published on

Jacek explans step by step how to package a simple C++ project and how to build against a matrix of different dependencies.

Please see this post or email travis@anduril.com for more information.

NixCon is happening again, if your company is using Nix in production, consider sponsoring our community event.

If you've ever been frustrated with mismatched GHC versions when using HIE, this project solves this by providing Nix builds for all of them, with caches for Linux.

Development update includes features and bug fixes shipped in last two weeks and shares plans what the focus is in next two weeks.

Contribute to NixOS Weekly Newsletter

This work would not be possible without the many contributions of the community.

You can help too! Create or comment on the pull request for the next edition or look at the issue tracker to add other improvements.

#07 - NixOS 19.03 release, IPFS, CI integrations and documentation feedback

— Published on

There might be progress on its Nix integration.

Alexandre shows us how to use Niklas' package set to compile Haskell packages statically using musl.

Michael walks us through the process of setting up Concourse CI on a NixOS machine.

Linus announces latest NixOS release, a total of over 20,000 commits since 18.09, by 886 contributors (67 more than for 18.09).

Dave shares his experience using NixOS and gives some feedback what can be improved by the community in the future w.r.t documentation.

Development update includes features and bug fixes shipped in last two weeks and shares plans what the focus is in next two weeks.

Garry shares a trick how to use packages from different channels. Useful when NixOS upgrade/update is blocked due to a broken package.

Contribute to NixOS Weekly Newsletter

This work would not be possible without the many contributions of the community.

You can help too! Create or comment on the pull request for the next edition or look at the issue tracker to add other improvements.

#06 - Lorri, tree parser and formatter, patchelf 0.10, NixML

— Published on

lorri is based around fast direnv integration for robust CLI and editor integration.

Try it out

Contribute to NixOS Weekly Newsletter

This work would not be possible without the many contributions of the community.

You can help too! Create or comment on the pull request for the next edition or look at the issue tracker to add other improvements.

#05 - Cachix private caches, Termux, Artwork for 19.03, a rant

— Published on

You can now share an unlimited number of binary caches in your group of developers, protected from public use with just a few clicks.

Alexander Sosedkin makes Nix on Android working on AARCH64. Inclusion upstream can be followed in the termux repo

Updated merchant report for the release

Rant from someone who got his hands to maintain NixOS in AWS. Some complaints are silly (like kernel upgrade), but some are good points.

Jobs

Recent IP development company is looking for someone with strong Nix skills to move the nix build infrastructure for our currently in-development mobile / web application to a CI/CD solution on AWS.

Contribute to NixOS Weekly Newsletter

This work would not be possible without the many contributions of the community.

You can help too! Create or comment on the pull request for the next edition or look at the issue tracker to add other improvements.

#04 - Static rootless Nix, SRE job, homebrew to Nix migration

— Published on

Salar wrote a step-by-step tutorial how to migrate from homebrew to Nix.

Tired of manually configuring your CUPS printers every time you set up a new NixOS host? Please take a look and give it a try to see whether everything works with your setup!

Matthew shows how using statically linked Nix in a 5MB binary, one can use Nix without root. With an one-liner shell, you can use Nix to install any software on a Linux machine.

While the job description doesn't mention Nix (yet), we've been hinted it is a Nix job.

Wael wrote a step-by-step tutorial for deploying a static site (blog) using Hugo static generator.

Contribute to NixOS Weekly Newsletter

This work would not be possible without the many contributions of the community.

You can help too! Create or comment on the pull request for the next edition or look at the issue tracker to add other improvements.

#03 - Kubenix, kernel regressions and jobs

— Published on

Try out NixOS, without having to even create a USB key.

Easily pin, update, and maintain remote dependencies for each of your Nix projects.

It can be enabled with services.xserver.desktopManager.pantheon.enable.

Regression in the linux kernel all together with backporting the issue into all stable kernels.

Setting up NixOS and Windows 10 on the Dell XPS 13 9370.

Zimbatm describes configuring Kubernetes using typed Nix wrappers to generate the Kubernetes YAML files. KubeNix automatically follows the API specification and validates your configuration entirely locally.

Status.im plans to migrate to Nix to manage its various packages and environments. Status.im looks to Nix for most of its usual advantages. Some of the provided examples are ensuring consistent development tools, and development/CI parity. They are also interested in Nixpkg's Linux and and macOS compatibility.

Jobs

Contribute to NixOS Weekly Newsletter

This work would not be possible without the many contributions of the community.

You can help too! Create or comment on the pull request for the next edition or look at the issue tracker to add other improvements.

#02 - 19.03 feature freeze, EU grants, reproducibility, Nix in Debian

— Published on

The nixos-generators project allows to take the same NixOS configuration, and generate outputs for different target formats i.e. ISO, kexec tarballs, qemu's qcow2 format, google cloud images...

Compare original MPlayer expression, it's first rewrite and modern view

by @samueldr aims to provide a one-click command solution to running a hydra instance for development purposes.

Matthew Bauer makes great recommendations on non-programming ways you can help make 19.03 the best NixOS release yet.

Grants are available to make your privacy-enhancing or search-and-discovery project.

Initial testing shows NixOS's minimal ISO image is already over 98% reproducible, thanks to the great effort of many contributors.

The repositories of distributions such as Debian and Nixpkgs are among the largest collections of open source (and some unfree) software. They are complex systems that connect and organize many interdependent packages. In this blog post we try to shed some light on them from the perspective of Nixpkgs, mostly with visualizations of its complete dependency.

Contribute to NixOS Weekly Newsletter

This work would not be possible without the many contributions of the community.

You can help too! Create or comment on the pull request for the next edition or look at the issue tracker to add other improvements.

#01 - TerraNix, Debian packaging, elm2nix, RaspberryPi 3+

— Published on

A polite introduction to use nix-instantiate and the NixOS module system to render JSON.

Terraform is awesome, it would be much more awesome with a NixOS module system.

Contribute to NixOS Weekly Newsletter

This work would not be possible without the many contributions of the community.

You can help too! Create or comment on the pull request for the next edition or look at the issue tracker to add other improvements.

#14 - Reproducible builds summit, Gnome 3.30, RFC process, linter, Arion

— Published on

To launch a wayland session simply use GDM or SDDM and select the gnome session. Select gnome-xorg to run an X11 session. If you encounter a bug please cc @hedning on github.

A little tool we use at Hercules CI for process supervision of local developer environments. No need to export, load or garbage collect Docker images!

FCP will end on Dec. 20, so go and check no important point has been left undiscussed!

A short demo of CI development progress in the last couple of weeks including what have we worked on.

Nix-linter is a program to check for several common mistakes or stylistic errors in Nix expressions, such as unused arguments, empty let blocks, etcetera.

Contribute to NixOS Weekly Newsletter

This work would not be possible without the many contributions of the community.

You can help too! Create or comment on the pull request for the next edition or look at the issue tracker to add other improvements.

#13 - Cross compilation for Go and Rust, home-manager email support

— Published on

In the past few months, some work went into home-manager to abstract mail configuration and generate configs for a variety of client-side software. Declare your username/password once and generate configs for afew/alot/astroid/mbsync/offlineimap.

This includes support for Cgo and buildGoPackage. Rust cross-compilation could follow soon.

Contribute to NixOS Weekly Newsletter

This work would not be possible without the many contributions of the community.

You can help too! Create or comment on the pull request for the next edition or look at the issue tracker to add other improvements.

#12 - NixCon 2018 videos, Eris, NixDoc, Auto patching and jobs

— Published on

Blogs

Jobs

Mercury is hiring a generalist engineer in SF. Mercury uses Nix for development, Hydra for CI, and runs on NixOS on AWS.

Call for participation

NixOS/nixpkgs#49275 for the first generated documentation files and NixOS/nixpkgs#49383 for updated doc strings. Rendered example available here.

nix-gitignore tries to convert the fnmatch(3) strings in a .gitignore file to perl regexes valid in nix’s match. filterSourceGitignore opts for translation to nix boolean predicates instead and implements a subset of the gitignore logic as nix functions, aborting for unsupported parts.

Contribute to NixOS Weekly Newsletter

This work would not be possible without the many contributions of the community.

You can help too! Create or comment on the pull request for the next edition or look at the issue tracker to add other improvements.

#11 - NixOS 18.09 release, Fastly CDN for cache, your first Hydra

— Published on

News

  • cache.nixos.org moved from Amazon to Fastly.

Contribute to NixOS Weekly Newsletter

This work would not be possible without the many contributions of the community.

You can help too! Create or comment on the pull request for the next edition or look at the issue tracker to add other improvements.

#10 - AArch64 builders, NixOps alternative, optimised docker layers, Hercules CI

— Published on

News

  • Exploring Nix & Haskell Part 1: Project Setup

    This is the first of a series of posts, with the overarching goal of building up a deterministic Haskell development environment using Nix, including a modern IDE experience and any tooling built-in.

  • krops as an alternative to NixOps

    NixOps, the official DevOps tool of NixOS, is nice but it has some flaws. krops is an alternative to NixOps trying to solve some of these flaws.

  • Japanese on NixOS

    An explanation of how to setup an environment for reading and writing Japanese on NixOS

Contribute to NixOS Weekly Newsletter

This work would not be possible without the many contributions of the community.

You can help too! Create or comment on the pull request for the next edition or look at the issue tracker to add other improvements.

#09 - NixCon 2018 program, macOS 10.14 Mojave support, Haskell and Python packaging tips

— Published on

News

  • Help make the Nix ecosystem's docs better

    A lot of people meet DocBook for the first time when they're contributing to the documentation of older, well established open source projects like NixOS. Now there is https://docbook.rocks/ to help you get past the initial hurdle of "what do I do now?" I hope this helps!

  • A way to develop software with Nix

    This project illustrates using the Nix package manager for programming heterogeneous, multi-module projects. Notably, it provides a Nix library called Pkgs-make to save some of the boilerplate we might have to write when using Nix for managing a software lifecycle. Pkgs-make currently directly supports Haskell and Python development, but has the potential to support other language platforms.

Contribute to NixOS Weekly Newsletter

This work would not be possible without the many contributions of the community.

You can help too! Create or comment on the pull request for the next edition or look at the issue tracker to add other improvements.

#08 - Nix 2.1, NixOS 18.09 beta, new installer bootloader

— Published on

News

  • #33686: New installer bootloader

    Updates the bootloader, shedding one of the few remaining old logos, while also adding new features. Mainly, HiDPI options under a new sub-menu, allowing modesetting the console to a readable size!

  • Nix 2.1 released

    Installer defaulting to single user, multi user support for Linux, constant memory streaming of NAR files and more.

  • Recent Cachix downtime

    A dive into what went wrong in recent ~2h downtime and steps taken to prevent it from happening again.

Contribute to NixOS Weekly Newsletter

This work would not be possible without the many contributions of the community.

You can help too! Create or comment on the pull request for the next edition or look at the issue tracker to add other improvements.

#07 - NixOS in production, nix-devel is now Discourse

— Published on

News

  • NixOS in production

    Gabriel Gonzalez shows how to do a remote nixos-rebuild switch while pinning nixpkgs

  • The nix-devel mailing list is now replaced by our discourse.nixos.org forum instance which is also usable by email

Contribute to NixOS Weekly Newsletter

This work would not be possible without the many contributions of the community.

You can help too! Create or comment on the pull request for the next edition or look at the issue tracker to add other improvements.

#06 - Formalizing review workflow, OfBorg update, String Context explanation

— Published on

News

  • An EPYC NixOS build farm

    Graham explores and benchmarks an AMD EPYC build server against a differently incredible build server, finding the EPYC's builds are much faster across the board.

  • RFC: pkgs.overrideWithScope

    Add pkgs.overrideWithScope. This function is similar to pkgs.override, except that it filters the arguments like callPackage does.

  • OfBorg update

    Build time-outs, push-button deploys, monitoring transparency, and more.

  • RFC 30: Formalize review workflow

    A proposal for a new review workflow based on a set of pull-request states (needs:review, needs:work). It is intended to help reviewers and contributors get PRs merged quicker and reduce likelihood of PRs getting lost. It also greatly increases the value of non-commiter reviews.

  • libnix-haskell 0.2.0.1 released

    libnix provides a nicely typed wrapper around the nix command line (for parsing, instantiating and realizing). It also provides wrappers for the nix-prefetch-url and nix-prefetch-git.

Contribute to NixOS Weekly Newsletter

This work would not be possible without the many contributions of the community.

You can help too! Comment on the pull request for the next edition or look at the issue tracker to add other improvements.

#05 - NixOS 18.09 preparations, incremental builds and other tooling

— Published on

News

Contribute to NixOS Weekly Newsletter

This work would not be possible without the many contributions of the community.

You can help too! Create or comment on the pull request for the next edition or look at the issue tracker to add other improvements.

#04 - NixCon2018, Nix Core Team, binary cache improvements

— Published on

NixOS weekly project is rebooting, expect a newsletter every Wednesday in the morning (European timezone).

You're more than welcome to submit new items with a short description on latest pull request

Domen

Tooling

  • terraform-provider-nixos: Terraform provider for NixOS and NixOps
  • nix-bundle: Bundle Nix derivations to run anywhere!
  • hocker: Utilities for interacting with the docker registry and generating nix build instructions

Contribute to NixOS Weekly Newsletter

This work would not be possible without the many contributions of the community.

You can help too! Create or comment on the pull request for the next edition or look at the issue tracker to add other improvements.

#03 - A tree with strong roots ...

— Published on

Welcome to another edition of NixOS "Weekly" Newsletter! Thank you to everyone who helped make this happen.

News

Tooling

Events / Meetups

  • ComcastLabs Connect: Functional Programming
    • When: March 9
    • Where: Philadelphia PA, USA
    • What: Among other functional programming topics, Susan Potter (@SusanPotter) is speaking on Functional Operations: Packaging, system/configuration building, and testing infrastructure with [Nix] lambdas

Contribute to NixOS Weekly Newsletter

This work would not be possible without the many contributions of the community.

You can help too! Create or comment on the pull request for the next edition or look at the issue tracker to add other improvements.

#02 - Life before death, strength before weakness, ...

— Published on

Welcome to another edition of NixOS "Weekly" News -- we're still working on that weekly bit and I've half a mind to amend the quote to add "monthly before weekly".

Let me start by addressing everyone who helped put this edition together: By creating the content and helping collect items, you make the newsletter possible. Thank you.

Contributions for future editions are more than welcome. One way to help is by editing a release; we've added an Editor's Guide to help you.

There are some exciting things happening in the community, and I hope you'll agree.

News

Tooling

  • nixos/nixos-hardware

    A collection of NixOS modules covering hardware quirks.

    The respository has been seeing a lot of work being done in last months leading by @yegortimoshenko (Yegor Timoshenko).

    Check it out and contribute your own hardware-configuration.nix

  • nixos-mailserver

    A complete and Simple Nixos Mailserver

Contribute

You can help shape NixOS Weekly Newsletter too! Create or comment on the pull request for the next edition or loot at the issue tracker to add other improvements.

#01 - Phoenixes burst into flame ...

— Published on

The phoenix is a long-lived fiery bird that is present in many different mythologies from around the world. When a phoenix “dies”, it does so by combustion and is reborn of the ashes left behind. It rises from its own ashes, in the freshness of youth, to live through another cycle of years. So in a sense, it never truly dies, but regenerates itself and lives forever. Just like this weekly newsletter.

Welcome to the 2018 NixOS “Weekly” newsletter.

We are back and hope to produce more of them this year then we did last year. As always contributions are more then welcome. The more people help shape this newsletter the more accurate it will be.

News

Tooling

  • nix-diff - A small utility for comparing Nix derivations
  • nix-delegate - A command-line utility that you can use to run a subcommand with distributed builds transiently enabled.
  • nix-deploy - Deploy software or an entire NixOS system configuration to another NixOS system.
  • nix-bash-completions - Bash completion for the Nix command line tools.
  • nix-zsh-completions - ZSH completion for the Nix command line tools.
  • fc-userscan - Scans directories containing manually compiled programs and registers them with the Nix garbage collector.
  • elm2nix - Convert Elm project into Nix expressions.
  • stack2nix - Generate nix expressions for Haskell projects.
  • node2nix - New version providing initial support for NPM 5.x (that is included with Node.js 8.x)
  • node-hydra-connector - New API/tool to integrate Node.js applications with the Hydra continuous integration service and a CLI tool that can be used to control a server.
  • composer2nix - Generate Nix expressions to build PHP composer packages.
  • mkShell - For nix-shell-only scenarios, mkShell is a small convenience function in nixpkgs.

Events / Meetups

Contribute

You can help shape NixOS Weekly Newsletter too! Create or comment on the pull request for the next edition or loot at the issue tracker to add other improvements.

#08 - Not all those who wander are lost

— Published on

Welcome to another edition of NixOS Weekly.

Major announcements include NixCon 2017 and the old wiki migration. This edition adds a new Tooling section for possibly useful Nix-related tools in addition to News, Jobs, Reading, and Events.

News

Tooling

Events / Meetups

  • NixOps Meetup May 26, Munich

    Topics: the NixOps container backend. Possible hackathon afterwards.

Editor's corner

This work would not be possible without the many contributions of the community.

You can help! Create or comment on the pull request for the next edition or help with the issue tracker to add other improvements.

#07 - You have one hell of a Linux system here

— Published on

A few months ago a proposal to define improvements process (nixos/rfcs) was announced.

While many contributions to Nix and NixOS related projects fits into GitHub pull requests model, doing a substantial change requires more involvement from the community.

Two months later we can see that NixOS community is picking up on the process and RFCs are starting to show up each week.

News

Events / Meetups

  • Thu, May 4, 2017, regular Meetup @c-base, Berlin, Germany

    Generally, the event is not structured, we have no talks or presentations planned. It's up to the participants, what's going to happen.

Editor's corner

Help us shape next issue of the NixOS weekly newsletter.

#06 - I never wished a man dead

— Published on

Or in other words: no more Perl in Nix! Shea Levy's last branch for his long-ongoing work to remove Perl from the Nix tool has finally been merged

News

  • NixOS on Packet.net

    Over the past several months, Graham Christensen (grahamc), Tuomas Tynkkynen (dezgeg), and many wonderful people from Packet.net have collaborated on bringing NixOS to Packet.net.

    Our collaboratioon started in January with Packet sponsoring many Hydra build servers. It continued by bringing ARMv8 builders to hydra.nixos.org. It is continued again today by launching first-class support for NixOS on the Packet.net platform, directly from their panel.

    ...launching first-class support for NixOS...

    This allows any user to quickly provision four different types of powerful, bare metal x86-64 servers in minutes.

    Sign up now at https://www.packet.net/promo/nixos/

    or use the promo code "nixos" for $25 in credit.

  • NixOS Security Advisory: Docker Local Privilege Escalation

    This is a fun one because it is the first CVE taken against NixOS. A milestone!

    At this point we also must thank @grahamc and the security team for their heroic efforts. Their work makes NixOS a more reliable solution.

    To help them please head to Vulnerability Roundup 26.

  • New node2nix (v1.2.0) released.

  • Takt has open-sourced a tool to deploy their services from hydra.

  • New pypi2nix (v1.8.0) release.

Events / Meetups

  • Apr 22, 2017, Augsburger Linux-Infotag, Augsburg, Germany

    The Augsburger Linux Infotag is a one-day conference with about 20 lectures and 9 workshops on Linux, open source software and the digital society. Admission is free. We are representing NixOS with a booth at the conference.

  • May 27, 2017, Reproducible development environments with Nix: Johannes Bornhold, Munich, Germany

    Providing build and development environments for Python based projects is typically not without challenges. This talk presents how Nix - The Purely Functional Package Manager can be used to provide reproducible environments for development and deployment of Python based Web projects.

  • May 01, 2017, Munich NixOS Meetup - Hackathon & Barbecue, Augsburg, Germany

    Bring the Nix project you are currently working on or struggling with and discuss it with other people. Followed by a barbecue in the evening.

Editor's corner

As you can see last weeks were quite busy for NixOS community. What does that mean in numbers for last month?

Monthly activity in NixOS/nixpkgs

Source: https://github.com/NixOS/nixpkgs/pulse/monthly

Help us shape next issue of NixOS weekly newslettter.

#05 - Tonight We Ride

— Published on

The 17.03 "Gorilla" release has been tagged! There are too many good things in this release to pick favourites. I refer you to the release notes instead.

Some fun stats:

News

Reading

  • One long-standing issue in Nix has been the storage of secrets. Right now many of our services store their secrets in /nix where they are world readable. This means you can't have root-only secrets, multi-user systems are problematic, and if one of your services is compromised it can be used to steal all your other secrets. Eelco created an RFC for encrypting secrets at rest.
  • Monte is a dynamic language inspired by Python and E. It uses Nix, under the hook, for its packaging. Worth checking out if you are writing a new languge and want to see how Nix help you.
  • A Gentle Introduction to the Nix Family by Rommel Martinez.

Meetups

  • Apr 4, 2017, NixOS April Meetup, Dublin, Ireland

    Two presentations:

    • Immutable deployments in Rapid7 by Ulrich Dangel
    • Basics of Nix by Kevin Cox
  • (Future) Let us know if you are organizing a Nix / NixOS event.

Editor's corner

A substantial part of the effort of publishing the "weekly" news is collecting the news in the first place. If you see anything cool, want to share a job, meetup or presentation add a comment with your item at https://github.com/NixOS/nixos-weekly. It's super helpful!

#04 - Everything not saved will be lost

— Published on

Nix, NixOS and nixpkgs are all moving ahead at good speed. The 17.03 milestone is more than 50% complete, and we merged 144 pull requests for nixpkgs just in the last seven days.

News

  • The NixOS 17.03 beta has been announced.
  • We now allow packages to be marked insecure, and you have to opt-in to install insecure packages similarly to how you opt in to non-free software. The option is called permittedInsecurePackages. See the updated docs for more.
  • Robin finished the systemd 232 update which opens up several new opportunities for hardening. It will also allow us to move away from hard-coded user IDs for less important services. Just use DynamicUser = true.
  • Thanks to Graham we now have aarch64 support, and it's even being built by Hydra! Many of you will have noticed already from the beautiful stream of emails for each succeeding and failing package.
  • Progress on the proposal for RFC which started from a FOSDEM discussion.
  • Move NodeJS to separate overlay repository? (discussion)

Reading

Presentations

Meetups

  • Mar 24, 2017, Tokyo NixOS Meetup, Tokyo, Japan

    My Japanese isn't good enough to figure out the speaker, but if you live in Japan you should go!

  • Mar 29, 2017, Munich NixOS Meetup at OpenLab Augsburg, Augsburg, Germany

    John Darrington will give a talk about guix and guixSD, a package manager and a Linux distribution which are based on similar concepts as nix/NixOS.

    The talk will be in English.

Meetups that just happened

  • Feb 24–26, 2017, HackIllinois, University of Illinois, USA

    For any university students in the US, the University of Illinois at Urbana-Champaign is holding a hackathon oriented towards getting people into open source development, and I'm going to be mentoring people for Nix/NixOS/Haskell development. Be sure to put "NixOS" or "Haskell" into your application somewhere.

  • Mar 12, 2017, London NixOS User Group at Smarkets, London, UK

    Smarkets kindly offered us a space for our second community hackday!

    There will be talking, pizzas and lots of packaging going on. Bring your own projects or just tag along and help other people out. Whether you have some software that you'd like to see packaged or questions about how everything fits together, there will be people available to help you.

Jobs

Looking for some Nix developers? Let us help you.
  • The Blue Brain Project recruit and is looking for someone with packaging, NixOS / Nix packaging knowledges and with a software engineering background. If any of you might be interested : http://emploi.epfl.ch/page-142376-en.html, The job is in Switzerland, Geneva, Swiss salary and Work visa granted for EU citizen if recruited.

Editor's corner

First time run for me to take care as the editor for an edition of NixOS Weekly. It has been fantastic to see a few people spontaneously helping out to make it happen after a call for help from Rok.

Contributions are easy: Send a pull request to the repository or comment on the open issue for the next edition by providing a hint regarding a presentation, an event, a relevant change or discussion.

#03 - Better Late Than Never

— Published on

Another two weeks have passed and it is time for our summary.

A new section Questions was added to the newsletter. The intention for this new section is that it is going to expose some of the questions that happen in the past. We hope that none of the questions will be left unanswered.

Sometimes we forget just how awesome Nix / NixOS is and we take its capabilities for granted. It is important that we remind ourself from time to time why are we using it, via reddit - In Love:

Just thought I'd share a compliment, switched from Arch, this thing is beautiful. Installing low level packages, configuration files, it all works so well.

Only issues are documentation (which I can see is being worked on and solved, albeit with limited manpower), and that some packages don't seem to work well with the package manager, but that's fixable over time.

But it's great for what it is, easy to get running, but still fully customization.

News

  • Important date: 27. Feb 2017 a branch-off for next NixOS release, 17.03 (Gorilla), is going to happen

    This means you have few more days to land your change to nixpkgs master if you want them to be a part of Gorilla.

    You can also follow the 17.03 milestone.

  • Assistance Required for Vulnerability Roundups

    Since last newsletter 2 Vulnerability Roundup happen: 21, 22.

    Graham Christensen is doing an amazing work coordinating the effort of a security team and also doing a big chunk of the work. Recently he asked for help and let us make sure he gets some helping hand, or two, three, ...

    We can all recognize that The work the security team is doing is of a great importance, since that makes it possible for the rest community to use NixOS in more production environments.

  • At FOSDEM a very spontaneous NixOS discussion panel happen. As a follow-up @zimbatm created an initial proposal for RFC.

    Having a more formal proposal how we work together and how bigger changes are discussed is a step towards mature Linux distribution. Having NixOS already reached this state is an impressive achievement.

  • Release: vagrant-nixos-plugin released v0.2.1, now with --show-trace support.

    Add basic nix configuration provisioning for NixOS guests in Vagrant.

  • Release: docker-nix-builder beta.

    Did you ever have to battle with a user that only wants to have Docker installed on his system? Or a user that is developing on macOS and has broken nix packages?

    docker-nix-builder is a tool to help smooth the transition. Instead of using nix to build the project, use Docker to run nix to build the project. At the end the users gets a new Docker container that only (mostly) contains the build result.

  • Release: Bundle Nix derivations to run anywhere, nix-bundle

    nix-bundle is a way to package Nix attributes into single-file executables. Benefits: Single-file output, Can be run by non-root users, No runtime, Distro agnostic, Completely portable, No installation

Meetups

  • Feb 24–26, 2017, HackIllinois, University of Illinois, USA

    For any university students in the US, the University of Illinois at Urbana-Champaign is holding a hackathon oriented towards getting people into open source development, and I'm going to be mentoring people for Nix/NixOS/Haskell development. Be sure to put "NixOS" or "Haskell" into your application somewhere.

  • Mar 22, 2017, Munich NixOS Meetup at OpenLab Augsburg, Augsburg, Germany

    John Darrington will give a talk about guix and guixSD, a package manager and a Linux distribution which are based on similar concepts as nix/NixOS.

    The talk will be in English.

Meetups that just happened

Jobs

Looking for some Nix developers? Let us help you.
  • Smarkets, London, United Kingdom

    We are looking for Infra team lead and Infra engineer.

    The jobs are not a Nix jobs per se since we are not using Nix at the moment. However, internally few of us are interested in trying it for e.g. building AMIs or provisioning docker containers with (mostly) python software. We think some strong candidate with experience of using Nix in production would have a good chance of seeing some adoption here.

Editor's corner

As you also probably noticed, this newsletter is coming out 2 days late. I am trying to get it out in time, but life happens also. If you would like to help release weekly newsletter please contact me.

#02 - Here we go

— Published on

Let us together review what happened in NixOS community in last 2 weeks. We are always looking to improve.

Let us know how we can do better.

News

Meetups

  • Feb 09, 2017, NixOS: Functional Packaging For The Win by Tobias Pflug at Wasserturm Stromeyersdorf, Konstanz, Germany

    Some of you might have heard about NixOS and its very different approach to a package and configuration management. While I am certainly not an expert with Nix myself I did tinker with it for a bit and I think it's awesome. I would like to give you an idea of the concepts, possibilities and maybe spark some interest.

  • Feb 24–26, 2017, HackIllinois, University of Illinois, USA

    For any university students in the US, the University of Illinois at Urbana-Champaign is holding a hackathon oriented towards getting people into open source development, and I'm going to be mentoring people for Nix/NixOS/Haskell development. Be sure to put "NixOS" or "Haskell" into your application somewhere.

Meetups that just happened

Presentations

  • Erlang Factory SF 2016: Erlang On NixOS - Managing And Releasing Erlang Systems In The Cloud With A Fully Declarative Package Manager presented by Eric Merritt

Jobs

  • Smarkets, London, United Kingdom

    We are looking for Infra team lead and Infra engineer.

    The jobs are not a Nix jobs per se since we are not using Nix at the moment. However, internally few of us are interested in trying it for e.g. building AMIs or provisioning docker containers with (mostly) python software. We think some strong candidate with experience of using Nix in production would have a good chance of seeing some adoption here.

Write us if you are looking for some Nix developers.

Editor's corner

Lately, I was thinking about the structure of this newsletter and noticed that it is quite advance Nix oriented. Would a section where we would promote questions from reddit / stack overflow be of any help to newcomers? Let me know.

#01 - We need to start somewhere

— Published on

Welcome to the first edition of NixOS weekly. We will do our best to release this newsletter every second week. If there is something you think we could improve, please let us know.

News

Meetups

Meetups that just happened:

Jobs

Write us if you are looking for some Nix developers.

Editor's corner

Since this is first edition it is not perfect, but eventually we will get there. You can help us as well.