AaronErhardt / tuxedo-rs

Rust libraries for interacting with hardware from TUXEDO Computers
GNU General Public License v2.0
151 stars 12 forks source link

build!(nix): reuse NixOS package #24

Closed mrcjkb closed 1 year ago

mrcjkb commented 1 year ago

I've added tuxedo-rs to NixOS/nixpkgs, and it is now available on the unstable branch.

This PR refactors the nix overlay to reuse the nixpkgs build, overriding the source, so that people who import this flake can use the latest scm version,

It also modifies the flake's module, so that it is in line with the NixOS module (we can delete this flake's module once NixOS 23.11 has been released).

blitz commented 1 year ago

This has unfortunately broken the module for 23.05 because the module still refers to services.tuxedo-rs.

mrcjkb commented 1 year ago

This has unfortunately broken the module for 23.05 because the module still refers to services.tuxedo-rs.

The module in this flake now also uses hardware.tuxedo-rs, which is in line with the nixos-unstable module. There is no tuxedo-rs module in NixOS 23.05, so there's nothing to break. If you're using this flake, you can just update your NixOS configuration to use hardware.tuxedo-rs instead of services.tuxedo-rs. Or am I missing something?

blitz commented 1 year ago

This has unfortunately broken the module for 23.05 because the module still refers to services.tuxedo-rs.

The module in this flake now also uses hardware.tuxedo-rs, which is in line with the nixos-unstable module. There is no tuxedo-rs module in NixOS 23.05, so there's nothing to break. If you're using this flake, you can just update your NixOS configuration to use hardware.tuxedo-rs instead of services.tuxedo-rs. Or am I missing something?

As I said, module.nix still refers to services.tuxedo-rs:

error: attribute 'tuxedo-rs' missing

       at /nix/store/5whl7mdssfh79gkyizq1gy7gnwnnb3ad-source/nix/module.nix:9:9:

            8| with lib; let
            9|   cfg = config.services.tuxedo-rs;
             |         ^
           10| in {

This is easy to fix, but then the overlay is broken with NixOS 23.05 as well:

error: attribute 'tuxedo-rs' missing

       at /nix/store/rlj3pckxbn7b7mcxn50dqa1vfayflvp5-source/nix/overlay.nix:5:15:

            4|
            5|   tuxedo-rs = pkgs.tuxedo-rs.overrideAttrs (oa: {
             |               ^
            6|     src = self;

because it assumes that there is a tuxedo-rs in nixpkgs.

So in short, this currently doesn't work for NixOS 23.05. :(

My current workaround is to pin tuxedo-rs to a77a9f6c64e6dd1ede3511934392cbc16271ef6b.

mrcjkb commented 1 year ago

@blitz it will be fixed with https://github.com/AaronErhardt/tuxedo-rs/pull/25

blitz commented 1 year ago

That's really nice but it's only a partial fix. The packages still can't be referenced, because the overlay depends on nixpkgs-unstable as well.

mrcjkb commented 1 year ago

That's really nice but it's only a partial fix. The packages still can't be referenced, because the overlay depends on nixpkgs-unstable as well.

Hmm, I guess this could be solved by passing the nixpkgs input to the overlay and using that to build the package (at least temporarily until NixOS 23.11 is released).

I'll look into it after work.