Nix Office hours

A recent article suggested office hours as a way to improve engagement with users. I thought I’d try it out this weekend as an experiment.

Feel free to book some time: can help out new users, PR reviews, upgrading to Flakes, random Nix things, help with packaging, or just chat.

Calendly - Thomas Bereknyei


Only had one for this iteration. It was a first-time NixOS user - covered:

  • GNOME configuration (poorly, not my strong point)
  • General NixOS questions
  • intro to caches, mentioned cachix
  • intro to channels, mentioned flakes
  • user management
  • automatic/declarative partitioning of disks?
  • home-manager
  • Building Go 1.16.2 via overrides. Noted the in-progress PR.
  • nix-shell usage
  • simple build derivations

Overall it was pleasant and an interesting way to see the Nix ecosystem from the point-of-view of someone new to it. I plan on doing a few more of these time-allowing. Will announce them here.


We used to have a weekly (bi-weekly?) office hours video meeting online that was pretty fun. @grahamc and @worldofpeace hosted it. Maybe you would be interested in picking that up. I’m pretty sure there are at least a dozen people who would consider joining, even if just to hang out and casually chat about some nix topics… if you’re interested.


I can do some more sessions this weekend if there is interest.

@aanderse yes, I’d like that.

For partitioning there is also GitHub - nix-community/disko: Format disks with nix-config [maintainer=@Lassulus]

Next session:

  • packaging for migra
    • ran into problems with poetry2nix and with mach-nix
    • traced the issue due to pathlib brought in by sqlbag
  • patched sqlbag similarly as an existing PR
  • WIP flake for migra
  • discussed potential next steps with pushing changes upstream, adding an override to poetry2nix, and/or adding migra to nixpkgs

Would love any input from python ecosystem managers.

1 Like

Earlier today I had a session with Thomas about Preparing a Nix flake for a Python program (Migra, using Poetry) and he was very friendly, knowledgeable and generous with his time. To anyone who struggles with Nix I sincerely recommend his office hours. Thank you Thomas!


Next session:

Primarily about setting up an auto-install live ISO for a Surface laptop. Topics:

  • using show-derivation to verify correct kernel was compiled with patches
  • nix copy to move closure to binary cache
  • discussed including built system closure in live ISO
  • discovered GRUB install failure was caused by incorrect partition type and filesystem type. (Must be ESP and VFAT.)
  • possible need to use id or uuid instead of labels when using LUKS.

@tomberek thank you so much for the session. It has been really helpful.

I needed to use a uuid for the luks device. I ended up writing it to a file at the end of the setup process which I read using initrd.luks.devices.root.device = (builtins.readFile ./uuid_boot);

I also discovered that I cannot use dev/disk/by-label with LVM, but I can use dev/<lvm_vg_name>/<lvm_volume_name> instead.

1 Like

@tomberek you don’t happen to know anything about packaging go applications, do you? If so, I would love to take advantage of your generous offer next time you’re available.


Last night @tomberek messaged me and we had an office hours session. It was great :+1: Tom was very helpful and worked through a relatively difficult packaging problem with me. Thanks again for all your efforts and help Tom.

1 Like

Had a few more sessions. Some trends:

  • interest in flakes
  • NixOS install (partitioning, ZFS, LUKS)
  • half-hour isn’t quite enough to solve more complex problems, bumping it up to allocate an hour.

Generally seems like the concept of holding office hours is fun and productive. Feel free to put something on the schedule for this weekend.

I’ve also got a “reverse office hours” request if anyone is good with Hydra. I’m getting problems on master branch when using a distributed builder. Local-only works fine.

Apr 02 06:44:20 perkeep hydra-queue-runner[11130]: will retry ‘/nix/store/sls5ybh8w7a8j05djvl0b53wc6k15w99-name.drv’ after 14588s
Apr 02 06:44:20 perkeep hydra-queue-runner[11130]: uncaught exception building ‘/nix/store/sls5ybh8w7a8j05djvl0b53wc6k15w99-name.drv’ on ‘root@3.333.111.94’: std::bad_alloc
Apr 02 06:44:20 perkeep hydra-queue-runner[11130]: marking step 6 of build 4486 as orphaned
Apr 02 06:44:20 perkeep hydra-queue-runner[11130]: outputs of ‘/nix/store/sls5ybh8w7a8j05djvl0b53wc6k15w99-name.drv’ substituted or already valid on ‘root@3.333.111.94’
Apr 02 06:44:19 perkeep hydra-queue-runner[11130]: performing step ‘/nix/store/sls5ybh8w7a8j05djvl0b53wc6k15w99-name.drv’ 1 times on ‘root@3.333.111.94’ (needed by build 4486 and 0 others)
Apr 02 05:24:46 perkeep hydra-queue-runner[11130]: cleaning orphaned step 5 of build 4486
1 Like

I think this is a great initiative! I’m curious if there’s any interest in videoing/streaming these sessions? I would def need interested in watching, and I imagine there’s some golden nuggets of wisdom in there for the rest of us mere mortals.

Recently had an office hour with @tomberek .

We talked about:

One very cool thing about the session is that @tomberek did a great job at driving the discussion: despite the fact that I had only a couple of specific questions, he was able to clarify things, and gave me pointers to help me understand nixos better (in particular, I was willing to understand nixos/pam: rework of the entire module by rissson · Pull Request #105319 · NixOS/nixpkgs · GitHub).


Hey! That’s my PR! I’d be happy to walk you through it, there’s quite a lot going on.

1 Like

I think too many people turns the meeting into more of a general discussion and less specific focus on solving the issue. I value the 1-on-1 approach as being very effective at addressing problems. Perhaps 2-on-1 for issues that cross several subjects.

IRC is sometimes used in a similar way, but it can be hard to coordinate and you often have too many questions for too few answers.

Another approach would be to have a common time to meet, but then break out into individual sessions for specific issues.


Yeah, our one on one session was very effective so I agree :+1:

These sound like a great way to reach out, thank you for doing it. If you’re still doing them I’d love to chat sometime. The calendar seems full for now though.

I can do some this afternoon.

Other priorities mean that I struggle to see when I might find time to think about Nix, for quite a few weeks to come. However, when time allows, I would like to understand how to get this

nixpkgs/pkgs/development/libraries/physics/geant4 at master · NixOS/nixpkgs · GitHub

to work on MacOS. I do not use MacOS myself, nor do I have access to a machine running it, though I have managed to spin up a VM which allows a fair degree of experimentation. I got hopelessly lost when trying to understand the interaction between XCode and Nix in general, and this package in particular.

Is this something that would make good material for discussion in your Nix Office Hours?

Hosted by Flying Circus.