jfloff / docker-lineageos

A more automated Docker-based build environment for LineageOS
MIT License
61 stars 41 forks source link

repo version should be updated #15

Open oupala opened 5 years ago

oupala commented 5 years ago

When launching a build, the console is outputting the following warning:

... A new repo command ( 1.26) is available. ... You should upgrade soon:

Maybe the repo version in the docker image should be updated.

jfloff commented 5 years ago

I just triggered the Docker container to rebuild. Give it 10minutes or so and test if the message is still there.

oupala commented 5 years ago

I updated the image, and the message is still there.

For information, the hash of the image I am using is cf6b995b758c.

oupala commented 5 years ago

It seems that the url where your Dockerfile is getting the repo binary is only proposing repo 1.13.7:

https://github.com/jfloff/docker-lineageos/blob/61ba7feca3946803fb182061df13f5351bee0cf8/Dockerfile#L85

This is why a simple rebuild of the docker-lineageos image does not change the version of the repo binary.

The strange thing is that the repo repo is only offering version 1.13.7. See here:

https://gerrit.googlesource.com/git-repo/

So, my final question is: where is repo 1.26 available as said on the repo CLI:

$ ./repo --version

... A new repo command ( 1.26) is available.
... You should upgrade soon:

    cp /home/user/project/.repo/repo/repo /home/user/project/repo

repo version v1.13.7
       (from https://gerrit.googlesource.com/git-repo)
repo launcher version 1.25
       (from /home/user/project/repo)
       (currently at 1.13.7)
repo User-Agent git-repo/1.13.7 (Linux) git/2.20.1 Python/2.7.16
git 2.20.1
git User-Agent git/2.20.1 (Linux) git-repo/1.13.7
Python 2.7.16 (default, Oct  7 2019, 17:36:04) 
[GCC 8.3.0]

Any clue?

GeorgBor commented 4 years ago

Same here, I also looking for an answer

oupala commented 4 years ago

In fact, I think that there is a misunderstanding about repo.

repo is composed of 2 parts: repo and repo laucher.

But it seems that you're installing repo (and probably repo launcher) from the right source, (according to the documentation](https://gerrit.googlesource.com/git-repo/+/refs/heads/master/README.md#install).

I don't understand why the last version of repo is not installed. @jfloff Could you please try to trigger a new build of the docker image?

When I install repo today, I get an updated version of repo:

$ curl https://storage.googleapis.com/git-repo-downloads/repo > repo
$ python repo init
$ python repo version
repo version v2.4.1
       (from https://gerrit.googlesource.com/git-repo)
repo launcher version 2.4
       (from /home/user/repo)
       (currently at 2.4.1)
repo User-Agent git-repo/2.4.1 (Linux) git/2.20.1 Python/3.7.5
git 2.20.1
git User-Agent git/2.20.1 (Linux) git-repo/2.4.1
Python 3.7.5 (default, Nov 20 2019, 09:21:52) 
[GCC 9.2.1 20191008]
oupala commented 4 years ago

I made some extensive testing about this image.

$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
jfloff/lineageos    latest              cf6b995b758c        4 months ago        1.03GB

$ docker run -it --rm jfloff/lineageos /bin/bash
lineageos@8ebd105cfa9d:~$ sudo repo init
gpg: keybox '/root/.repoconfig/gnupg/pubring.kbx' created
gpg: /root/.repoconfig/gnupg/trustdb.gpg: trustdb created
gpg: key 16530D5E920F5C65: public key "Repo Maintainer <repo@android.kernel.org>" imported
gpg: key 67B7E448692B382C: public key "Conley Owens <cco3@android.com>" imported
gpg: Total number processed: 2
gpg:               imported: 2

Get https://gerrit.googlesource.com/git-repo/clone.bundle
Get https://gerrit.googlesource.com/git-repo
remote: Counting objects: 2, done
remote: Finding sources: 100% (52/52)
remote: Total 52 (delta 26), reused 52 (delta 26)
Unpacking objects: 100% (52/52), done.
From https://gerrit.googlesource.com/git-repo
   d38300c..e20da3e  master     -> origin/master
   0b57eed..d957ec6  stable     -> origin/stable
 * [new tag]         v2.4       -> v2.4
 * [new tag]         v2.4.1     -> v2.4.1
repo: warning: Python 2 is no longer supported; Please upgrade to Python 3.6+.

... A new version of repo (2.4) is available.
... You should upgrade soon:

    cp /home/lineageos/.repo/repo/repo /usr/bin/repo

fatal: manifest url (-u) is required.

lineageos@8ebd105cfa9d:~$ repo version
repo: warning: Python 2 is no longer supported; Please upgrade to Python 3.6+.

... A new version of repo (2.4) is available.
... You should upgrade soon:

    cp /home/lineageos/.repo/repo/repo /usr/bin/repo

repo version v2.4.1
       (from https://gerrit.googlesource.com/git-repo)
repo launcher version 1.25
       (from /usr/bin/repo)
       (currently at 2.4.1)
repo User-Agent git-repo/2.4.1 (Linux) git/2.11.0 Python/2.7.13
git 2.11.0
git User-Agent git/2.11.0 (Linux) git-repo/2.4.1
Python 2.7.13 (default, Sep 26 2018, 18:42:22) 
[GCC 6.3.0 20170516]

The strange thing is that the repo version command ouputs some inconsistent informations:

lineageos@8ebd105cfa9d:~$ repo version
repo: warning: Python 2 is no longer supported; Please upgrade to Python 3.6+.
... A new version of repo (2.4) is available.
... You should upgrade soon:
repo version v2.4.1
       (from https://gerrit.googlesource.com/git-repo)
repo launcher version 1.25
       (from /usr/bin/repo)
       (currently at 2.4.1)
repo User-Agent git-repo/2.4.1 (Linux) git/2.11.0 Python/2.7.13

Either repo is in version 2.4 or 2.4.1 and it does not need to be updated. Either it needs to be updated but it is not in version 2.4 or 2.4.1.

Maybe the first thing would be to build this from from an image more recent than openjdk:8 so that we can benefit from python 3.6 or later (switching from stretch to buster, for example, while sticking to openjdk8).

oupala commented 4 years ago

I tried to change the FROM image of the Dockerfile from openjdk:8 to openjdk:8u242-slim-buster.

The problem is that the image does not build any more: the libesd0-dev package is missing from debian buster. I don't now if I can remove the package from the image, if I can replace it by another package (the closest I found is libesd-java bit I'm absolutely not sure the latter can replace the prior). The curl command is also missing and should be added as a package. With these two changes, I can achieve to build an image, but I don't know if the resulting image is working well.

In the end, this small update is driving me much further than I tought and I do not feel skilled enough to achieve this task.

Maybe @jfloff can be helpful to say what dependency is required or optional.

oupala commented 4 years ago

unzip was also missing.

Here is the current diff of my Dockerfile:

$ git diff
diff --git a/Dockerfile b/Dockerfile
index 28245ce..a0fe27d 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,4 +1,4 @@
-FROM openjdk:8
+FROM openjdk:8u242-slim-buster
 LABEL maintainer="jfloff@inesc-id.pt"

 ###################
@@ -28,6 +28,8 @@ RUN set -ex ;\
           bc \
           bison \
           build-essential \
+          curl \
+          unzip \
           flex \
           g++-multilib \
           gcc-multilib \
@@ -38,7 +40,7 @@ RUN set -ex ;\
           lib32ncurses5-dev \
           lib32readline-dev \
           lib32z1-dev \
-          libesd0-dev \
+          libesd-java \
           liblz4-tool \
           libncurses5-dev \
           libsdl1.2-dev \
oupala commented 4 years ago

I get an error about another missing library:

error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory

I think I can't go any further without some help.

oupala commented 4 years ago

Is there any hope to get some help?

Is there anyone having an idea of the current version of repo?

@jfloff Have you a few minutes to help me just a little?

erhan- commented 3 years ago

I get an error about another missing library:

error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory

I think I can't go any further without some help.

It is libncurses-dev.

oupala commented 3 years ago

In this comment (22 Oct 2019), I was saying that repo was only available in version 1.13.7 in the repo repo. This repo is currently proposing a lot a releases between 1.13.7 and 2.11.1.

Currently, a simple rebuild should be enough to update the version of repo.

sailinggalaxians commented 3 years ago

Can we have a new update, please?

Output from running repo sync:

info: A new version of repo is available repo: Updating release signing keys to keyset ver 2.3 warning: repo is not tracking a remote branch, so it will not receive updates repo reset: error: Entry 'fetch.py' not uptodate. Cannot merge. fatal: Cannot reset index file to version "v2.17.3^0".

erhan- commented 3 years ago

You should have a look at https://github.com/lineageos4microg/docker-lineage-cicd

lag-linaro commented 2 years ago

repo reset: error: Entry 'fetch.py' not uptodate. Cannot merge.

I'm getting this now. Did you solve it?