Failed build for: jfvelte - Galaxy S4 Value Edition (GT-I9515/L)

Neither nor, my Ubuntu-Server is a older Dell Workstation I have at home!

But happy to read your HowTo!

On a server I find snaps to be pretty solid.
And I wanted to it as minimal as can be and also perhaps write a beginers howto…

brunch (that calls breakfast) has some logic to pull device manifests. It somehow can’t. Is it the revision handed to the script? I don’t know. I usually just build to the v1-r (-q … -s) branches, not tags.

It helps to not use the script and just issue “breakfast lineage_jfvelte” at the prompt and see what the build commands come up with.

Nice hint @tcecyk

Any idea what the fallback/outcome should be, if the tag is gone — a plain ‘v1-r’?
noTag_v1.16-r

repo-20231102.log

[Thu Nov 2 06:43:34 UTC 2023] (Re)initializing branch repository

… A new version of repo (2.39) is available.
… You should upgrade soon:
cp /srv/src/R/.repo/repo/repo /usr/local/bin/repo

repo: reusing existing repo client checkout in /srv/src/R

repo has been initialized in /srv/src/R

[Thu Nov 2 06:43:37 UTC 2023] Syncing branch repository

… A new version of repo (2.39) is available.
… You should upgrade soon:
cp /srv/src/R/.repo/repo/repo /usr/local/bin/repo

error: hooks is different in /srv/src/R/.repo/projects/external/libvpx.git vs /srv/src/R/.repo/project-objects/LineageOS/android_external_libvpx.git
Retrying clone after deleting /srv/src/R/.repo/projects/external/libvpx.git
error: hooks is different in /srv/src/R/.repo/projects/external/libxml2.git vs /srv/src/R/.repo/project-objects/LineageOS/android_external_libxml2.g
Retrying clone after deleting /srv/src/R/.repo/projects/external/libxml2.git
error: hooks is different in /srv/src/R/.repo/projects/external/webp.git vs /srv/src/R/.repo/project-objects/LineageOS/android_external_webp.git
Retrying clone after deleting /srv/src/R/.repo/projects/external/webp.git
Encountered 4 file(s) that should have been pointers, but weren’t:
AccountManager/davx5-ose-4.3.5.2-ose-release-unsigned.apk
Mail/k9mail-release-unsigned.apk
Tasks/opentasks-release-unsigned.apk
eDrive/eDrive-1.3.16-release-unsigned.apk
repo sync has finished successfully.

Now ran a plain 'v1-r' — no luck either

[Thu Nov 2 07:07:37 UTC 2023] Starting build for jfvelte, v1-r branch
07:07:43 Build sandboxing disabled due to nsjail error.
In file included from build/make/core/config.mk:291:
In file included from build/make/core/envsetup.mk:266:
.[1mbuild/make/core/product_config.mk:155: .[31merror: .[0m.[1mCan not locate config makefile for product “lineage_jfvelte”…[0m
07:07:43 dumpvars failed with: exit status 1
File “/usr/local/bin/repo”, line 1292
comment_line = re.compile(rb"^ *#")
^
SyntaxError: invalid syntax
Device jfvelte not found. Attempting to retrieve device repository from LineageOS Github (http://github.com/LineageOS).
Found repository: android_device_samsung_jfvelte
Default revision: lineage-18.1
Checking branch info
Checking if device/samsung/jfvelte is fetched from android_device_samsung_jfvelte
Adding dependency: LineageOS/android_device_samsung_jfvelte → device/samsung/jfvelte
Using default branch for android_device_samsung_jfvelte
Syncing repository to retrieve project.
Repository synced!
Looking for dependencies in device/samsung/jfvelte
device/samsung/jfvelte has no additional dependencies.
Done
07:07:44 Build sandboxing disabled due to nsjail error.
In file included from build/make/core/config.mk:291:
In file included from build/make/core/envsetup.mk:266:
.[1mbuild/make/core/product_config.mk:155: .[31merror: .[0m.[1mCan not locate config makefile for product “lineage_jfvelte”…[0m
07:07:44 dumpvars failed with: exit status 1
07:07:45 Build sandboxing disabled due to nsjail error.
In file included from build/make/core/config.mk:291:
In file included from build/make/core/envsetup.mk:266:
.[1mbuild/make/core/product_config.mk:155: .[31merror: .[0m.[1mCan not locate config makefile for product “lineage_jfvelte”…[0m
07:07:45 dumpvars failed with: exit status 1

** Don’t have a product spec for: ‘lineage_jfvelte’
** Do you have the right repo manifest?

No such item in brunch menu. Try ‘breakfast’

[Thu Nov 2 07:07:45 UTC 2023] Failed build for jfvelte
[Thu Nov 2 07:07:45 UTC 2023] Finishing build for jfvelte
[Thu Nov 2 07:07:45 UTC 2023] Cleaning source dir for device jfvelte
07:07:45 Entire build directory removed.

build completed successfully

This went away and has not come back since I updated ubuntu and had a reboot

Sorry, I do not know how to do that.

Btw: now it’s on the device — will use it today

New approach … you had a docker environment which worked … then it stopped working with seemingly random errors.

I would step back and use ncdu on the environment. Can you be sure you have enough headroom to build ? My experience is that out of space headroom errors will not necessarily be reported as such.

I have Munin running:


The peak there is from the s5neolte build, then turned off over night and this morning the repo sync
Looks fine to me

Mem is good to:

I hope this will not look like a reactive ding dong … I am sure you are more aware than me the answer to

Why do df and du differ ?

However my suggestion was more of a long term learning suggestion to help you investigate where the “big items” in the build are located and the dynamic requirement of headroom which is hard to predict.

I’m an old dog, but one can still teach me new tricks :slight_smile:
I do use ncdu or BashTOP …, but the one thing I’ve learned in 22y web/root admin is, monitoring over time tells you much more…and Munin has been my choise, also because you get Warnings
(yes, I have to keep work emails 10years):

When my T build failed I saw a disc warning, but also a lot of other metrics I can correlate.
Plus I can go back in time and compare different builds… well maybe have a look at their demo:
http://demo.munin-monitoring.org/munin-monitoring.org/demo.munin-monitoring.org/

instead of the repo init on lineage, you init on /e/s gitlab with one of the v1- branches. breakfast+brunch are lineage build commands, not AOSP upstream. It’s overlayed by sourcing the envsetup.sh. It’s all there is to it. Much easier build error debugging. This said, I think your troubles are all with tainted repo sync states

Edit: @ronnz98 wrote up the non-docker way at Howto: Unofficial Builds using repo style for supported lineageOS devices that are not (yet) supported by /e/OS - link here for future visitors, complements the links given

Thanks @tcecyk I meant this in the way, that /e docs for the docker system is thin and I do not know how I would add/change this in how I do ‘docker run’

So, how would one put ’ just issue “breakfast lineage_jfvelte” at the prompt’ or ‘repo sync’ in the above statment? I may be a bit duff, but I just don’t get it

overwrite the entrypoint of the docker image to a shell, finger-follow the script that used to be the entrypoint what it does, when it sources a envsetup.sh… but those steps official aosp + lineage docs do cover too.

Docker is good for the dependencies, but an apt-install oneliner prepares stock debian pretty well to skip docker as package distribution mechanism

docker run -v <allyourmounts> -it --entrypoint bash registry.gitlab.e.foundation:5000/e/os/docker-lineage-cicd:community

don’t want to hijack your thread on concrete repo-sync / breakfast problem though

I found some issues and tought they were the problem, but I deleted the post above because I have the same problems on a 2nd workstation.

On both I could build in Sep/Okt then got problems on one workstation, which are ongoing.
Today I just started the other workstation an I get the same problems

What has changed in Okt/Nov is docker image:

$ docker  image ls                                                                            
REPOSITORY                                                   TAG         IMAGE ID       CREATED        SIZE  
registry.gitlab.e.foundation:5000/e/os/docker-lineage-cicd   community   70db1a246c88   2 months ago   1.92GB
registry.gitlab.e.foundation:5000/e/os/docker-lineage-cicd   <none>      9acfd3dbeed7   2 months ago   1.92GB
registry.gitlab.e.foundation/e/os/docker-lineage-cicd        community   29d835c75f03   4 months ago   1.92GB
registry.gitlab.e.foundation:5000/e/os/docker-lineage-cicd   <none>      29d835c75f03   4 months ago   1.92GB
$ docker inspect  70db1a246c88 | grep Created        
        "Created": "2023-11-02T21:39:14.377717891Z", 
$ docker inspect  9acfd3dbeed7 | grep Created        
        "Created": "2023-10-27T05:02:34.936152595Z", 
$ docker inspect  29d835c75f03 | grep Created        
        "Created": "2023-08-31T04:37:40.101872176Z",
 ~/e/logs$ grep -r 'Failed build for' *
:>> [Tue Oct 31 16:49:45 UTC 2023] Failed build for jactivelte
:>> [Wed Nov  1 09:12:14 UTC 2023] Failed build for jfvelte
:>> [Thu Nov  2 07:07:45 UTC 2023] Failed build for jfvelte
:>> [Sat Jan  6 15:14:29 UTC 2024] Failed build for jfvelte
:>> [Sat Jan  6 18:03:53 UTC 2024] Failed build for jfvelte
:>> [Sat Jan  6 19:53:50 UTC 2024] Failed build for jfvelte
:>> [Wed Nov  1 23:43:28 UTC 2023] Failed build for jfvelte
:>> [Sat Jan  6 16:24:01 UTC 2024] Failed build for jfvelte
:>> [Tue Oct 31 20:31:12 UTC 2023] Failed build for jfvelte
:>> [Tue Oct 31 20:39:31 UTC 2023] Failed build for jfvelte
:>> [Tue Oct 31 20:43:58 UTC 2023] Failed build for jfvelte
:>> [Thu Nov  2 23:47:19 UTC 2023] Failed build for klte
:>> [Thu Nov  2 15:50:07 UTC 2023] Failed build for klte
:>> [Thu Nov  2 15:37:24 UTC 2023] Failed build for klte
:>> [Thu Nov  2 15:39:23 UTC 2023] Failed build for klte
:>> [Thu Nov  2 15:54:10 UTC 2023] Failed build for klte
:>> [Thu Nov  2 16:01:00 UTC 2023] Failed build for klte
:>> [Thu Nov  2 15:43:35 UTC 2023] Failed build for klte
:>> [Thu Nov  2 15:45:40 UTC 2023] Failed build for klte
:>> [Sat Jan  6 16:53:17 UTC 2024] Failed build for s5neolte
:>> [Sat Jan  6 17:25:05 UTC 2024] Failed build for s5neolte
:>> [Sat Jan  6 17:29:49 UTC 2024] Failed build for s5neolte
:>> [Thu Jan  4 09:23:42 UTC 2024] Failed build for s5neolte
:>> [Thu Jan  4 09:36:00 UTC 2024] Failed build for s5neolte
:>> [Thu Jan  4 09:47:01 UTC 2024] Failed build for s5neolte
:>> [Sat Jan  6 14:53:16 UTC 2024] Failed build for s5neolte
:>> [Thu Jan  4 09:39:48 UTC 2024] Failed build for s5neolte

It sees like I can not use, or I do not fully understand how/if one can use a previous version

docker run 29d835c75f03 …

results in only: Set cache size limit to 50.0 GB no further out put

@tcecyk any insight onyour side? It just seems so unlikley that my 2nd “clean workstation” has the same issues, starting at the exact same timeframe!?

And one of the things that changed was to move to Python 3 instead of Python 2

The error in your other thread was

File “/usr/local/bin/repo”, line 51
def print(self, *args, **kwargs):
^
> SyntaxError: invalid syntax
> Device s5neolte not found. Attempting to retrieve device repository from LineageOS 

So it looks like the version of repo you have is not compatible with Python 3, which ties in with the repo-20240106.log message

… A new version of repo (2.40) is available.
… You should upgrade soon:
cp /srv/src/R/.repo/repo/repo /usr/local/bin/repo

Have you tried updating your version of repo - as the message suggests?
cp /srv/src/R/.repo/repo/repo /usr/local/bin/repo

To me, this would be much more the reason, thank you for pointing this aout!

I admit a saw this all along, but I simply kept on thinking docker would do this with:

Get our docker image
Tip: Please run this step before each build, to be sure to get the last docker image.
$ sudo docker pull registry.gitlab.e.foundation:5000/e/os/docker-lineage-cicd:community

How to Build the /e/OS ROM?

I think I could use some hints on

  • when/how todo a AOSP repo init
  • when/how todo a AOSP repo sync

Cheers

You don’t need to do either of those:

  • the Docker image calls repo init on the https://gitlab.e.foundation/e/os/android repository. That repository contains manifests which identify the needed repositories from the /e/, lineageOS, and AOSP repos
  • the Docker image then calls repo sync which will clone (if needed) those repos, and fetch the versions / branches specified in the manifests

https://gitlab.e.foundation/search?search=aosp&nav_source=navbar&project_id=7&group_id=9&search_code=true&repository_ref=v1-t

So it is doing, what I thought – then this is the confusing part:

Why is it suggesting this in the log?
Why is it not doing this?

Those are good questions, and I didn’t know the answers so I did some digging. What I think happens is this

The main repo script serves as a standalone program and is often referred to as the “launcher script”. This makes it easy to copy around and install as you don’t have to install any other files from the git repo.

Installs Repo in the current directory. This command creates a .repo/ directory with Git repositories for the Repo source code and the standard Android manifest files.

It is possible (quite likely in my experience, given how often I have seen this warning) that the version of the launcher script differs from the VERSION variable in the launcher itself. In this case

At runtime, repo will check this to see if it needs to be updated (and notify the user automatically).,

which explains the warning you see when Docker runs repo sync.

I don’t know why repo works like this, but it does, and there is nothing Docker can do about it: Docker calls repo sync and checks the outcome of the call when the sync completes (successfully or unsuccessfully). The displayed message is only a warning and does not - in itself - cause the repo sync to fail.

Having said all that, I don’t know that is what is causing your whole build to fail after the change from Python 2 to Python 3, but it is something that is easily fixed (cp /srv/src/R/.repo/repo/repo /usr/local/bin/repo), so is worth a try.

I hope that helps, and thanks for the learning opportunity: I now know much more about what is going on ‘under the hood’ in repo than I did before I started digging. :slight_smile:

1 Like