| 27 May 2024 |
jaen | Okay, changed my mind, forgot how error–prone that is with all the NixCpp corner cases around relative flake paths : V I guess it's better to suffer a superfluous input or two than britleness. So I guess the Python tests PR and the format PR (probably best reviewed after the first goes in; couldn't find a way to stack PRs with forks) are ready from my end. Please let me know if there's still something missing from them on your end (whenever you are able). In the mean time I'll be chipping away at the checks PR an possibly further at GrapheneOS after that's done. | 19:48:45 |
| 28 May 2024 |
erahhal | I've been trying to get LineageOS 21 to build (discussed here) , and feel like I'm getting close. Updated the python scripts, device and vendor files, and patches. Now when I build I'm running into the following. Not sure where to make a change to address this:
warning: Git tree '/home/erahhal/Code/nix-android' is dirty
warning: creating lock file '/home/erahhal/Code/nix-android/flake.lock'
warning: Git tree '/home/erahhal/Code/nix-android' is dirty
these 3 derivations will be built:
/nix/store/jp9lghipjq8gym5i4i37i9q7scc8wqlp-robotnix-lineage_cheetah-2024052404.drv
/nix/store/lmq73sjh1kk0dpfqqhrqkky4cvg7vd0j-ota-tools.drv
/nix/store/k38ncc9ih0523fsisrm4wcmrwx67diap-cheetah-ota_update-2024052404.zip.drv
robotnix-lineage_cheetah> building '/nix/store/jp9lghipjq8gym5i4i37i9q7scc8wqlp-robotnix-lineage_cheetah-2024052404.drv'
robotnix-lineage_cheetah> unpacking sources
robotnix-lineage_cheetah> patching sources
robotnix-lineage_cheetah> building
robotnix-lineage_cheetah> Build type choices are:
robotnix-lineage_cheetah> 1. release
robotnix-lineage_cheetah> 2. debug
robotnix-lineage_cheetah>
robotnix-lineage_cheetah> Which would you like? [1] release
robotnix-lineage_cheetah> In file included from build/make/core/config.mk:389:
robotnix-lineage_cheetah> In file included from build/make/core/envsetup.mk:51:
robotnix-lineage_cheetah> build/make/core/release_config.mk:100: error: No release config set for target; please set TARGET_RELEASE, or if building on the command line use 'lunch <target>-<release>-<build_type>', where release is one of: ap1a.
robotnix-lineage_cheetah> 00:43:28 dumpvars failed with: exit status 1
error: builder for '/nix/store/jp9lghipjq8gym5i4i37i9q7scc8wqlp-robotnix-lineage_cheetah-2024052404.drv' failed with exit code 1;
last 10 log lines:
> building
> Build type choices are:
> 1. release
> 2. debug
>
> Which would you like? [1] release
> In file included from build/make/core/config.mk:389:
> In file included from build/make/core/envsetup.mk:51:
> build/make/core/release_config.mk:100: error: No release config set for target; please set TARGET_RELEASE, or if building on the command line use 'lunch <target>-<release>-<build_type>', where release is one of: ap1a.
> 00:43:28 dumpvars failed with: exit status 1
For full logs, run 'nix log /nix/store/jp9lghipjq8gym5i4i37i9q7scc8wqlp-robotnix-lineage_cheetah-2024052404.drv'.
error: 1 dependencies of derivation '/nix/store/k38ncc9ih0523fsisrm4wcmrwx67diap-cheetah-ota_update-2024052404.zip.drv' failed to build
┏━ 1 Errors:
┃ error: builder for '/nix/store/jp9lghipjq8gym5i4i37i9q7scc8wqlp-robotnix-lineage_cheetah-2024052404.drv' failed with exit code 1;
┃ last 10 log lines:
┃ > building
┃ > Build type choices are:
┃ > 1. release
┃ > 2. debug
┃ >
┃ > Which would you like? [1] release
┃ > In file included from build/make/core/config.mk:389:
┃ > In file included from build/make/core/envsetup.mk:51:
┃ > build/make/core/release_config.mk:100: error: No release config set for target; please set TARGET_RELEASE, or if building on the command line use 'lunch <target…
┃ > 00:43:28 dumpvars failed with: exit status 1
┃ For full logs, run 'nix log /nix/store/jp9lghipjq8gym5i4i37i9q7scc8wqlp-robotnix-lineage_cheetah-2024052404.drv'.
| 00:46:48 |
erahhal | Found this thread, but I don't see the release variant being set to "trunk" anywhere. | 01:27:15 |
atemu12 | Check whether the LOS build instructions have changed | 14:34:56 |
atemu12 | It's smells like the targets are specified differently now | 14:35:07 |
erahhal | Looking at https://wiki.lineageos.org/devices/cheetah/build/ I'm not seeing anything obvious. Will need to familiarize more with what Robotnix is doing. I assume base.nix is the right file. | 16:12:23 |
erahhal | I tried explicitly setting the target using export TARGET_RELEASE=ap1a and it goes a little further, with the following error:
robotnix-lineage_cheetah> building '/nix/store/9pnnwqhaz86hy9hlsqvf1ayz9fcp0l91-robotnix-lineage_cheetah-2024052404.drv'
robotnix-lineage_cheetah> unpacking sources
robotnix-lineage_cheetah> patching sources
robotnix-lineage_cheetah> building
robotnix-lineage_cheetah> Build type choices are:
robotnix-lineage_cheetah> 1. release
robotnix-lineage_cheetah> 2. debug
robotnix-lineage_cheetah>
robotnix-lineage_cheetah> Which would you like? [1] release
robotnix-lineage_cheetah>
robotnix-lineage_cheetah>
robotnix-lineage_cheetah> Which product would you like? [aosp_arm] lineage_cheetah
robotnix-lineage_cheetah> In file included from build/make/core/config.mk:389:
robotnix-lineage_cheetah> In file included from build/make/core/envsetup.mk:51:
robotnix-lineage_cheetah> build/make/core/release_config.mk:109: error: No release config found for TARGET_RELEASE: trunk_staging. Available releases are: ap1a.
robotnix-lineage_cheetah> 16:15:11 dumpvars failed with: exit status 1
robotnix-lineage_cheetah> ** Not a valid product: lineage_cheetah
| 16:16:26 |
| 29 May 2024 |
| raitobezarius changed their display name from raitobezarius to raitobezarius (DECT: 7248). | 17:09:57 |
erahhal | Is this line the one that is supposed to set TARGET_PRODUCT? Or is it the envsetup.sh line above? | 17:30:22 |
erahhal | * Is this line the one that is supposed to set TARGET_PRODUCT? Or is it the envsetup.sh line above it? | 17:30:29 |
erahhal | I would assume it's the envsetup.sh line since it's sourceed, as scripts can't normally set the caller's environment | 17:31:01 |
erahhal | Ah yeah looks like it | 17:31:55 |
atemu12 | Envsetup loads a bunch of bash functions | 17:44:39 |
atemu12 | The line you linked is probably such a function | 17:45:10 |
atemu12 | So it can indeed load env vars | 17:45:29 |
erahhal | Thanks. | 18:23:02 |
erahhal | My current strategy is to see what's different from this repo which successfully builds 21. | 18:23:27 |
atemu12 | That sounds like a good plan | 18:32:40 |
| @swendel:curious.bio joined the room. | 22:28:30 |
| 3 Jun 2024 |
eyJhb | Atemu: https://github.com/nix-community/robotnix/pull/227 any chance this can get merged? :D | 08:13:47 |
atemu12 | I'll have to take a look | 13:50:54 |
erahhal | i've still been trying to get 21 to build in my free time. Realized that there were some issues with the update script that didn't fully populate device-dirs.json and vendor-dirs.json, specifically get_store_path in robotnix_common.py was returning the path with None/ appended to it. I addressed that, and it seems that the json files are fully populated. I did have to comment out adding a dependency to the vendor file (vendor/google/gs-common) as no repo seems to exist. Not sure where to find that repo. I tried building and now get a nix failure rather than an android build failure:
error:
… while calling the 'derivationStrict' builtin
at /builtin/derivation.nix:9:12: (source not available)
… while evaluating derivation 'cheetah-factory-2024060308.zip'
whose name attribute is located at /nix/store/d0dl9ch4hhxkqikc1dw3868j95gsbb0h-source/pkgs/stdenv/generic/make-derivation.nix:205:7
… while evaluating attribute 'buildCommand' of derivation 'cheetah-factory-2024060308.zip'
at /nix/store/d0dl9ch4hhxkqikc1dw3868j95gsbb0h-source/pkgs/build-support/trivial-builders.nix:74:14:
73| name = lib.strings.sanitizeDerivationName name;
74| inherit buildCommand;
| ^
75| passAsFile = [ "buildCommand" ]
(stack trace truncated; use '--show-trace' to show the full trace)
error: attribute '"vendor/google/gs-common"' missing
at /nix/store/d0dl9ch4hhxkqikc1dw3868j95gsbb0h-source/lib/attrsets.nix:107:50:
106| */
107| getAttrs = names: attrs: genAttrs names (name: attrs.${name});
| ^
108|
| 17:56:59 |
atemu12 | The easy way is to blacklist the device which pulls in the vendor dir | 17:59:47 |
atemu12 | As for the stack trace, you truncated away the actual error | 18:00:12 |
erahhal | Ah yes, sorry:
error: attribute '"vendor/google/gs-common"' missing
at /nix/store/d0dl9ch4hhxkqikc1dw3868j95gsbb0h-source/lib/attrsets.nix:107:50:
106| */
107| getAttrs = names: attrs: genAttrs names (name: attrs.${name});
| ^
108|
| 18:09:57 |
erahhal | Where is that blacklist? | 18:10:13 |
erahhal | * Where is the blacklist | 18:10:27 |
erahhal | This does also seem to be broken for android 13 on master, but it fails with gs101 instead of gs-common when building for cheetah | 18:19:02 |
erahhal | If I remove the gs-common dependencies, 14 also fails on gs101. | 18:19:28 |
erahhal | I guess those are dependencies for the tensor chip? | 18:20:09 |