-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Yeah. Unfortunately the current repo fetcher is pretty much broken,
this patch is more or less a requirement for changes to the repo
fetcher we proposed in the bitbake mailinglist.

In our case some binary which is made up from some 50ish separately
versioned sub-components. We used to have separate recipes for each of
this components and static link them using DEPENDS. However, this does
not scale well. E.g. if you want to create another version with
different cmake flags, you would have to create copies of all 50ish
recipes. You could move all the components into a single recipe and do
50x git fetcher, but keeping this versioned is still painful.
Especially since the developers mainly don't use yocto but use the SDK
for cross-compiling. As such this used to mean, that versioning in the
development workflow and the release workflow worked differently ->
more maintenance work.

With repo fetcher we can streamline the versioning within the yocto
build process and the daily developer workflow, as both can fetch the
repo manifest from a central stored git repo. The idea is, that the
repo manifest defaults to develop branch for all component repos and if
we want to create a release we can use repos own tooling to
automatically create fixed refspecs from the development manifest.
something like `repo manifest -r -o release-1.0.0.xml`, push that as a
release to the manifest repo, set this release as refspec in the recipe
within the meta layer and proceed with the release process. So no more
manually maintaining the component versioning within the yocto recipes.

- -- 
With best regards

Jasper Orschulko
DevOps Engineer

Tel. +49 30 58 58 14 265
Fax +49 30 58 58 14 999
[email protected]

• • • • • • • • • • • • • • • • • • • • • • • • • •

iris-GmbH
infrared & intelligent sensors
Schnellerstraße 1-5 | 12439 Berlin

https://iris-sensing.com/





On Fri, 2021-11-05 at 15:20 +0100, Alexander Kanavin wrote:
> Wait, what is the use case for the repo fetcher? 
> 
> Alex
> 
> On Fri, 5 Nov 2021 at 14:31, Jasper Orschulko via
> lists.openembedded.org <[email protected]>
> wrote:
> > From: Jasper Orschulko <[email protected]>
> > 
> > Add a recipe for repo, prerequisite for the repo fetcher.
> > 
> > Signed-off-by: Jasper Orschulko <[email protected]>
> > ---
> >  .../repo/files/0001-python3-shebang.patch     | 21 ++++++++++++
> >  .../0001-Set-REPO_REV-to-v2.17.3.patch        | 33
> > +++++++++++++++++++
> >  meta/recipes-devtools/repo/repo.inc           | 25 ++++++++++++++
> >  meta/recipes-devtools/repo/repo_2.17.3.bb     |  7 ++++
> >  4 files changed, 86 insertions(+)
> >  create mode 100644 meta/recipes-devtools/repo/files/0001-python3-
> > shebang.patch
> >  create mode 100644 meta/recipes-devtools/repo/repo-2.17.3/0001-
> > Set-
> > REPO_REV-to-v2.17.3.patch
> >  create mode 100644 meta/recipes-devtools/repo/repo.inc
> >  create mode 100644 meta/recipes-devtools/repo/repo_2.17.3.bb
> > 
> > diff --git a/meta/recipes-devtools/repo/files/0001-python3-
> > shebang.patch b/meta/recipes-devtools/repo/files/0001-python3-
> > shebang.patch
> > new file mode 100644
> > index 0000000000..09ccf58264
> > --- /dev/null
> > +++ b/meta/recipes-devtools/repo/files/0001-python3-shebang.patch
> > @@ -0,0 +1,21 @@
> > +From b8e84b202cd302a7c99288d3835dc9c63071f8f2 Mon Sep 17 00:00:00
> > 2001
> > +From: Jasper Orschulko <[email protected]>
> > +Date: Tue, 14 Sep 2021 16:46:51 +0200
> > +Subject: [PATCH] python3 shebang
> > +
> > +---
> > + repo | 2 +-
> > + 1 file changed, 1 insertion(+), 1 deletion(-)
> > +
> > +diff --git a/repo b/repo
> > +index b13e34c..205e0e5 100755
> > +--- a/repo
> > ++++ b/repo
> > +@@ -1,4 +1,4 @@
> > +-#!/usr/bin/env python
> > ++#!/usr/bin/env python3
> > + # -*- coding:utf-8 -*-
> > + #
> > + # Copyright (C) 2008 The Android Open Source Project
> > +--
> > +2.33.0
> > diff --git a/meta/recipes-devtools/repo/repo-2.17.3/0001-Set-
> > REPO_REV-to-v2.17.3.patch b/meta/recipes-devtools/repo/repo-
> > 2.17.3/0001-Set-REPO_REV-to-v2.17.3.patch
> > new file mode 100644
> > index 0000000000..294a3af53a
> > --- /dev/null
> > +++ b/meta/recipes-devtools/repo/repo-2.17.3/0001-Set-REPO_REV-to-
> > v2.17.3.patch
> > @@ -0,0 +1,33 @@
> > +From bdd2a528da59c28db8ae2986834926de7cebf3ab Mon Sep 17 00:00:00
> > 2001
> > +From: Jasper Orschulko <[email protected]>
> > +Date: Thu, 4 Nov 2021 16:55:12 +0100
> > +Subject: [PATCH] Set REPO_REV to v2.17.3
> > +
> > +repo is an unusual tool because it downloads all of its own Python
> > modules
> > +using GPG-signed git tags, and stores those files as part of the
> > project
> > +that it is working with.
> > +
> > +So in order to have a reproducible repo installation within the
> > project
> > +folders, we hardcode the REPO_REV variable to this recipes PV.
> > +
> > +Upstream-Status: Inappropriate [configuration]
> > +Signed-off-by: Jasper Orschulko
> > <[email protected]>
> > +---
> > + repo | 2 +-
> > + 1 file changed, 1 insertion(+), 1 deletion(-)
> > +
> > +diff --git a/repo b/repo
> > +index 4cddbf1..cf5f6b1 100755
> > +--- a/repo
> > ++++ b/repo
> > +@@ -142,7 +142,7 @@ if __name__ == '__main__':
> > + REPO_URL = os.environ.get('REPO_URL', None)
> > + if not REPO_URL:
> > +   REPO_URL = 'https://gerrit.googlesource.com/git-repo'
> > +-REPO_REV = os.environ.get('REPO_REV')
> > ++REPO_REV = 'v2.17.3'
> > + if not REPO_REV:
> > +   REPO_REV = 'stable'
> > + # URL to file bug reports for repo tool issues.
> > +--
> > +2.33.1
> > diff --git a/meta/recipes-devtools/repo/repo.inc b/meta/recipes-
> > devtools/repo/repo.inc
> > new file mode 100644
> > index 0000000000..60b32e4d74
> > --- /dev/null
> > +++ b/meta/recipes-devtools/repo/repo.inc
> > @@ -0,0 +1,25 @@
> > +# SPDX-License-Identifier: MIT
> > +# Copyright (C) 2021 iris-GmbH infrared & intelligent sensors
> > +
> > +SUMMARY = "Tool for managing many Git repositories"
> > +DESCRIPTION = "Repo is a tool built on top of Git. Repo helps
> > manage
> > many Git repositories, does the uploads to revision control
> > systems,
> > and automates parts of the development workflow."
> > +HOMEPAGE = "https://android.googlesource.com/tools/repo";
> > +SECTION = "console/utils"
> > +
> > +LICENSE = "Apache-2.0"
> > +
> > +SRC_URI =
> > "git://[email protected]/git-
> > repo.git;protocol=https;branch=main
> > "
> > +MIRRORS = "git://[email protected]/git-repo.git
> > git://github.com/GerritCodeReview/git-repo.git \n"
> > +
> > +SRC_URI += "file://0001-python3-shebang.patch"
> > +
> > +S = "${WORKDIR}/git"
> > +
> > +RDEPENDS_${PN} = "python3"
> > +
> > +do_install() {
> > +    install -d ${D}${bindir}
> > +    install -m 755 ${WORKDIR}/git/repo ${D}${bindir}
> > +}
> > +
> > +BBCLASSEXTEND = "native nativesdk"
> > diff --git a/meta/recipes-devtools/repo/repo_2.17.3.bb
> > b/meta/recipes-devtools/repo/repo_2.17.3.bb
> > new file mode 100644
> > index 0000000000..c26264b9e9
> > --- /dev/null
> > +++ b/meta/recipes-devtools/repo/repo_2.17.3.bb
> > @@ -0,0 +1,7 @@
> > +# SPDX-License-Identifier: MIT
> > +# Copyright (C) 2021 iris-GmbH infrared & intelligent sensors
> > +
> > +require recipes-devtools/repo/repo.inc
> > +
> > +SRCREV = "11b30b91df1f0e03b53da970ec2588e85817bacc"
> > +LIC_FILES_CHKSUM =
> > "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEE4WyPMIC5Ap4+Ooo1Ygqew07VMNUFAmGFTK4ACgkQYgqew07V
MNXGKwf8CbYnBqQhNvouhixH8rqaEjhFBAcbEvK1Pgke4B0zMuSJVz2YmTKPiHgK
dFznVtBxIJS7zwhuj/DyfhrG33Ws3Rw1m8IppZ5FP2XivNbmnimH13a7Pu5hw3FH
o1ka6VEqyuR/L4pyVZ+ocSgdEIyReSOJ6E1zyIomz13j5hScQIKFdAu4tinLNLck
XnC/SCDe3lZbijo41GK1v9GhKFjwY3Hpko6ezG/CEFPHKZomjHNL9Mi8gbv4Y/50
8+pYnvlYU7agsW4aN/koeRWOm78/Qi6rlOX5pVxAaVVVArrIKnU2aG6UBwk61BtC
UIqLBYOMyZ4IXlNp5y2tGbr6QS0YrQ==
=M87Y
-----END PGP SIGNATURE-----
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#157904): 
https://lists.openembedded.org/g/openembedded-core/message/157904
Mute This Topic: https://lists.openembedded.org/mt/86841424/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to