| 28 Jul 2024 |
matthewcroughan - nix.zone | Is anyone aware that you cannot add new devices to robotnix that aren't supported in upstream due to the logic in flavors/lineageos/default.nix only allowing usage of official lineage devices, without the ability to override this behavior? | 00:24:55 |
matthewcroughan - nix.zone | nix build .#robotnixConfigurations.brownstone.img -L
warning: Git tree '/home/matthew/git/nixconfig' is dirty
error:
… while calling the 'derivationStrict' builtin
at <nix/derivation-internal.nix>:9:12:
8|
9| strict = derivationStrict drvAttrs;
| ^
10|
… while evaluating derivation 'hlte-img-2023100409.zip'
whose name attribute is located at /nix/store/9fpv0kjq9a80isa1wkkvrdqsh9dpcn05-source/pkgs/stdenv/generic/make-derivation.nix:348:7
… while evaluating attribute 'buildCommand' of derivation 'hlte-img-2023100409.zip'
at /nix/store/9fpv0kjq9a80isa1wkkvrdqsh9dpcn05-source/pkgs/build-support/trivial-builders/default.nix:87:15:
86| enableParallelBuilding = true;
87| inherit buildCommand name;
| ^
88| passAsFile = [ "buildCommand" ]
… while evaluating the option `source.unpackScript':
… while evaluating definitions from `/nix/store/0iavq4h1d2mk95fbdrdzashahbqiri9f-source/modules/source.nix':
… while evaluating the option `source.dirs':
… while evaluating definitions from `/nix/store/0iavq4h1d2mk95fbdrdzashahbqiri9f-source/flavors/lineageos':
(stack trace truncated; use '--show-trace' to show the full, detailed trace)
error: attribute '"device/samsung/hlte"' missing
at /nix/store/0iavq4h1d2mk95fbdrdzashahbqiri9f-source/flavors/lineageos/default.nix:132:43:
131| relpathWithDeps = relpath: [ relpath ] ++ (
132| flatten (map (p: relpathWithDeps p) deviceDirs.${relpath}.deps)
| ^
133| );
| 00:25:17 |
matthewcroughan - nix.zone | For example, you'll just get this evaluation error if you try | 00:25:28 |
matthewcroughan - nix.zone | error: attribute '"device/samsung/hlte"' missing | 00:25:38 |
matthewcroughan - nix.zone | This happens even if I define source.dirs."device/samsung/hlte".src = pkgs.fetchgit { ... } | 00:25:57 |
atemu12 | There is no such logic | 00:26:17 |
matthewcroughan - nix.zone | Because robotnix now will read some json file from the lineageos it fetched | 00:26:17 |
atemu12 | The attribute simply isn't there | 00:26:34 |
atemu12 | Use a repl and check eval | 00:26:46 |
matthewcroughan - nix.zone | Not sure what you mean. | 00:26:59 |
matthewcroughan - nix.zone | Do you not see what is happening? | 00:27:07 |
atemu12 | Use nix repl and then check the value of config.source.dirs | 00:27:19 |
matthewcroughan - nix.zone | It is reading a JSON file from the LineageOS upstream | 00:27:24 |
atemu12 | That's the default | 00:27:43 |
matthewcroughan - nix.zone | https://github.com/nix-community/robotnix/blob/master/flavors/lineageos/default.nix#L24-L26 | 00:27:50 |
matthewcroughan - nix.zone | ah okay | 00:27:53 |
atemu12 | This is a module system, you can add any source dir you like | 00:27:54 |
atemu12 | You either have a typo here or something else is going on | 00:28:08 |
matthewcroughan - nix.zone | nix-repl> robotnixConfigurations.brownstone.config.source.dirs
error:
… while evaluating the attribute 'value'
at /nix/store/9fpv0kjq9a80isa1wkkvrdqsh9dpcn05-source/lib/modules.nix:807:9:
806| in warnDeprecation opt //
807| { value = builtins.addErrorContext "while evaluating the option `${showOption loc}':" value;
| ^
808| inherit (res.defsFinal') highestPrio;
… while evaluating the option `source.dirs':
… while evaluating the attribute 'mergedValue'
at /nix/store/9fpv0kjq9a80isa1wkkvrdqsh9dpcn05-source/lib/modules.nix:842:5:
841| # Type-check the remaining definitions, and merge them. Or throw if no definitions.
842| mergedValue =
| ^
843| if isDefined then
… while evaluating definitions from `/nix/store/0iavq4h1d2mk95fbdrdzashahbqiri9f-source/flavors/lineageos':
(stack trace truncated; use '--show-trace' to show the full, detailed trace)
error: attribute '"device/samsung/hlte"' missing
at /nix/store/0iavq4h1d2mk95fbdrdzashahbqiri9f-source/flavors/lineageos/default.nix:132:43:
131| relpathWithDeps = relpath: [ relpath ] ++ (
132| flatten (map (p: relpathWithDeps p) deviceDirs.${relpath}.deps)
| ^
133| );
| 00:28:32 |
matthewcroughan - nix.zone | I cannot evaluate source.dirs due to it failing earlier | 00:28:57 |
atemu12 | Then I'm not sure | 00:29:32 |
atemu12 | You'd have to dig into it | 00:29:37 |
samueldr | In reply to @matthewcroughan:defenestrate.it Is anyone aware that you cannot add new devices to robotnix that aren't supported in upstream due to the logic in flavors/lineageos/default.nix only allowing usage of official lineage devices, without the ability to override this behavior? explain how I'm building LineageOS for an unsupported device then? | 00:30:36 |
matthewcroughan - nix.zone | I am also, an earlier version (11) | 00:30:49 |
samueldr | [but that might have broken with the changes since] | 00:30:50 |
matthewcroughan - nix.zone | which changes the logic | 00:30:52 |
matthewcroughan - nix.zone | When using androidVersion 12 or 13 things get a bit weirder | 00:31:05 |
samueldr | androidVersion 11 for my part | 00:31:19 |
matthewcroughan - nix.zone | https://github.com/DoESLiverpool/nixcfgs/blob/master/hosts/admin-phone/default.nix | 00:34:37 |
matthewcroughan - nix.zone | Here's an example of my working build for 11 also | 00:34:43 |