lineageos4microg / docker-lineage-cicd

Docker microservice for LineageOS Continuous Integration and Continous Deployment
https://hub.docker.com/r/lineageos4microg/docker-lineage-cicd
GNU General Public License v3.0
480 stars 189 forks source link

los4microg 19.1 build fails for polaris device #621

Closed bitandquit closed 2 months ago

bitandquit commented 2 months ago

Hello,

I have repeatedly tried to build lineageos4micro 19.1 for the device Polaris and the build fails. Newly setup Debian Bookworm, 128GB of RAM, 2TB of storage using the provided latest docker image, starting with a blank /home/user folder with a fresh repo sync.

sudo docker run -e "BRANCH_NAME=lineage-19.1"     -e "DEVICE_LIST=polaris"     -e "SIGN_BUILDS=true"     -e "SIGNATURE_SPOOFING=restricted"     -e "WITH_GMS=true"     -v "/home/user/lineage:/srv/src"     -v "/home/user/zips:/srv/zips"     -v "/home/user/logs:/srv/logs"     -v "/home/user/cache:/srv/ccache"     -v "/home/user/keys:/srv/keys"     -v "/home/user/manifests:/srv/local_manifests"     lineageos4microg/docker-lineage-cicd

lineage-19.1-20240430-UNOFFICIAL-polaris.log.zip

petefoth commented 2 months ago

First thing is to say that 19.1 is no longer supported by upstream LineageOS or by use. polaris has been getting 21.0 los4microG builds since April, and 20.0 builds before that since at least January 2023 (as far back as our records go).

I've had a quick look at the log file: the build error message is

[ 99% 138813/139890] //frameworks/base/services/core:services.core.unboosted javac16 [common]
FAILED: out/soong/.intermediates/frameworks/base/services/core/services.core.unboosted/android_common/javac/services.core.unboosted.jar16
...
frameworks/base/services/core/java/com/android/server/pm/PackageManagerService.java:3412: error: local variables referenced from a lambda expression must be final or effectively final
                    packageInfo.signatures = new Signature[]{fakeSignature};
                    ^
1 error

So if you really want to make a build using out-of-date code, you could start by looking there. But there is no guarantee that a 19.1 build will be possible - so much has changed since then.

Good luck

petefoth commented 2 months ago

PS I've added the Out of scope label, since here is no way we can guarantee (or even offer) support for building older versions for devices which have received newer releases.

bitandquit commented 2 months ago

Hi Pete,

Thanks for the response and taking the time to look at the log. Out of curiosity if I did want to try marching forward to get a 19.1 build, should I try pulling an older version of the lineage4os docker image?

I know that all work at this point is focused Lineage 21 and 20, but I am curious why the build process which at one point worked for 19.1 isn't working anymore. That might be an academic exercise though.

petefoth commented 2 months ago

Out of curiosity if I did want to try marching forward to get a 19.1 build, should I try pulling an older version of the lineage4os docker image?

No, it won't help, it's nothing to do with our docker image ....

I am curious why the build process which at one point worked for 19.1 isn't working anymore.

I believe it is because code changes have been made upstream (in Lineage OS or AOSP - not sure which) that have broken the LOS device builds. Because LOS no longer have any 19.1 devices (they were all either promoted to 20.0 and / or 21.0, or dropped), the developers - of both the code LOS code and the device-specific code - have no need or motivation to make the the necessary changes in the 19.1 source code branches to fix the 19.1 builds.

I believe that 18.1 builds will still work, because either

So, possibly an interesting academic exercise, but probably not a productive one 😄

bitandquit commented 2 months ago

OK, thanks for the feedback and fast response, makes sense that something upstream with LOS changed.