-
-
Notifications
You must be signed in to change notification settings - Fork 306
Reworked nix infrastructure #281
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
- made a proper derivation for winbaot, preserving the original drv (will have to be changed later) - removed redundant outputs of the flake.nix - changed re-import of nixpkgs. - the stupid hash thing is broken, and is completely broken now since the structure has changed. I will fix it later.
- removed redundancy - used autoPatchElf hook for resolving and patching deps - fixed the slopy mess the original code was
The module can be installed fairly easily with the following steps: Add the forked branch to inputs {
inputs.winboat = {
url = "github:Rexcrazy804/winboat?ref=fix-nix";
inputs.nixpkgs.follows = "nixpkgs";
};
} import the module and enable it {inputs, ... }: {
imports = [
inputs.winboat.nixosModules.default
];
users.users.YourUsername.extraGroups = ["docker"];
services.winboat.enable = true;
} |
I can confirm that it works on latest stable NixOS |
I can confirm that it works on latest unstable NixOS. |
Can I ask why you didn't just re-add the nixosModules? You're currently working on issues that Nix Support 2.0 already resolved. (Nix support 2.0 was added in 0.8.5 iirc, the issues you mentioned were made for versions before that) |
Thank you for taking your time to iron out our nix infrastructure! Thanks again for your work, please keep us updated on when and how we should go about the merge! |
The state of the derivations were terrible, I had to fix those first.
I've done more than just that. |
I'd say one course of action is to have the pr reworked based on these changes as this pr has overhauled the old structure entirely. The second thing I can think of is having a derrivaiton that builds directly from source, which is the most commong approach flakes that reside in repos use, which removes any and all need for any workflow, the derrivaiton is simply built from the master branch and hence is updated alongside the master branch and wouldn't require a workflow to update the hash of the source. Eliminating a need for updating the derrivaiton with each release (however we could add a workflow that checks if the nix drv builds on each release)
It does, which is why I have marked it as complete on the todo list |
to summarize we have two options to move this forward
In my opinion 1. is ideal, and is the standard for derrivaitons that live on the source repo. I can instantly get that going since I've already written a derrivation that can build this from source in nix. The largest pitfall of the orignal derrivations used in this repo was NOT building the package from source, this is understandable since the contributers probably were new to writing derrivations in the first place. This is clearly true for pr #194 which featured ai assisted, severely under polished code. |
Sure, getting rid of the has updating workflow could be nice, but as of right now, the main branch isn't stable; release tags are. Do you think that's a problem? Also, there's some great work over at NixOS/nixpkgs#451068 😃 |
Not necessarily, since with nix (more specifically nix flakes and npins/niv) dependencies are pinned so it easy for users to track and use specific revisions as well as reverting to older revisioms / tags.
Mhm that's the source building approach I've mentioned. In nixpkgs it is standard to build from source if the source is available. Once that is merged, users seeking stability can stick with nixpkgs' winboat package, and others wishing to be on the bleeding edge can use the flake in this repo to always have lastest changes |
This branch is currently in a working state and I welcome nixos users to test this.