Re: [yocto] [RFC] devtool: support multiple sources

2023-11-23 Thread Julien Stephan
Le jeu. 23 nov. 2023 à 00:36, Richard Purdie
 a écrit :
>
> On Wed, 2023-11-22 at 13:53 +0100, Julien Stephan wrote:
> > Le mar. 14 nov. 2023 à 12:21, Alexander Kanavin
> >  a écrit :
> > >
> > > I think no one actually anticipated all these corner cases when
> > > devtool was written. In general it's simply not designed to handle
> > > multiple sources in SRC_URI, it can do (tarball or git)+patches, and
> > > not any of the other options. No one is expecting a fix for all of
> > > them, perhaps it's best to keep the scope to plain gitsm://.
> > >
> >
> > Hi Alex,
> >
> > I sent a series to add submodule support. As you suggested I focused
> > myself on gitsm recipes, but I had to handle the situation of a git
> > tree extracted into S because it was throwing an error now with my
> > submodule implementation (while it was not working but not throwing
> > any error on master).
> >
> > > I don't have specific advice for the broader issue; if you have ideas,
> > > it would be good to at least document them.
> > >
> > > Alex
> >
> >
> > For the other cases,  I was thinking of using the newly merged API
> > "unpack tracer"
> > (https://git.yoctoproject.org/poky/commit/?id=ef3e46afd910d4b7727d42c4c18b501525c65695)
> > (suggested  by RP in this thread
> > https://git.yoctoproject.org/poky/commit/?id=ef3e46afd910d4b7727d42c4c18b501525c65695).
> > I really think that we could leverage this new api to create a devtool
> > unpack tracer, so we can have a better idea of what is unpacked and
> > where. This could help to solve the corner cases I described
> > previously but also the bug 15162
> > (https://bugzilla.yoctoproject.org/show_bug.cgi?id=15162). I think it
> > may also help to simplify devtool code in various places.
> > Where should I document this?
> > Should I open a new ticket?
>
> Yes please, it would be good to at least document the idea as I do
> think it could help devtool with a number of the corner cases. A
> bugzilla bug for it is the place to do it.
>

Hi Richard and Alexander,

FYI, here is the bugzilla bug
https://bugzilla.yoctoproject.org/show_bug.cgi?id=15294

Cheers
Julien

> Cheers,
>
> Richard

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#61733): https://lists.yoctoproject.org/g/yocto/message/61733
Mute This Topic: https://lists.yoctoproject.org/mt/102509834/21656
Group Owner: yocto+ow...@lists.yoctoproject.org
Unsubscribe: https://lists.yoctoproject.org/g/yocto/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [yocto] [RFC] devtool: support multiple sources

2023-11-22 Thread Richard Purdie
On Wed, 2023-11-22 at 13:53 +0100, Julien Stephan wrote:
> Le mar. 14 nov. 2023 à 12:21, Alexander Kanavin
>  a écrit :
> > 
> > I think no one actually anticipated all these corner cases when
> > devtool was written. In general it's simply not designed to handle
> > multiple sources in SRC_URI, it can do (tarball or git)+patches, and
> > not any of the other options. No one is expecting a fix for all of
> > them, perhaps it's best to keep the scope to plain gitsm://.
> > 
> 
> Hi Alex,
> 
> I sent a series to add submodule support. As you suggested I focused
> myself on gitsm recipes, but I had to handle the situation of a git
> tree extracted into S because it was throwing an error now with my
> submodule implementation (while it was not working but not throwing
> any error on master).
> 
> > I don't have specific advice for the broader issue; if you have ideas,
> > it would be good to at least document them.
> > 
> > Alex
> 
> 
> For the other cases,  I was thinking of using the newly merged API
> "unpack tracer"
> (https://git.yoctoproject.org/poky/commit/?id=ef3e46afd910d4b7727d42c4c18b501525c65695)
> (suggested  by RP in this thread
> https://git.yoctoproject.org/poky/commit/?id=ef3e46afd910d4b7727d42c4c18b501525c65695).
> I really think that we could leverage this new api to create a devtool
> unpack tracer, so we can have a better idea of what is unpacked and
> where. This could help to solve the corner cases I described
> previously but also the bug 15162
> (https://bugzilla.yoctoproject.org/show_bug.cgi?id=15162). I think it
> may also help to simplify devtool code in various places.
> Where should I document this?
> Should I open a new ticket?

Yes please, it would be good to at least document the idea as I do
think it could help devtool with a number of the corner cases. A
bugzilla bug for it is the place to do it.

Cheers,

Richard

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#61732): https://lists.yoctoproject.org/g/yocto/message/61732
Mute This Topic: https://lists.yoctoproject.org/mt/102509834/21656
Group Owner: yocto+ow...@lists.yoctoproject.org
Unsubscribe: 
https://lists.yoctoproject.org/g/yocto/leave/6691583/21656/737036229/xyzzy 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [yocto] [RFC] devtool: support multiple sources

2023-11-22 Thread Julien Stephan
Le mar. 14 nov. 2023 à 12:21, Alexander Kanavin
 a écrit :
>
> I think no one actually anticipated all these corner cases when
> devtool was written. In general it's simply not designed to handle
> multiple sources in SRC_URI, it can do (tarball or git)+patches, and
> not any of the other options. No one is expecting a fix for all of
> them, perhaps it's best to keep the scope to plain gitsm://.
>

Hi Alex,

I sent a series to add submodule support. As you suggested I focused
myself on gitsm recipes, but I had to handle the situation of a git
tree extracted into S because it was throwing an error now with my
submodule implementation (while it was not working but not throwing
any error on master).

> I don't have specific advice for the broader issue; if you have ideas,
> it would be good to at least document them.
>
> Alex


For the other cases,  I was thinking of using the newly merged API
"unpack tracer"
(https://git.yoctoproject.org/poky/commit/?id=ef3e46afd910d4b7727d42c4c18b501525c65695)
(suggested  by RP in this thread
https://git.yoctoproject.org/poky/commit/?id=ef3e46afd910d4b7727d42c4c18b501525c65695).
I really think that we could leverage this new api to create a devtool
unpack tracer, so we can have a better idea of what is unpacked and
where. This could help to solve the corner cases I described
previously but also the bug 15162
(https://bugzilla.yoctoproject.org/show_bug.cgi?id=15162). I think it
may also help to simplify devtool code in various places.
Where should I document this?
Should I open a new ticket?

Cheers
Julien

>
> On Fri, 10 Nov 2023 at 17:24, Julien Stephan  wrote:
> >
> > Hi all,
> >
> > Sorry for the long message here, but I would really appreciate
> > feedback from the community :)
> >
> > I am currently working on bug #14141
> > (https://bugzilla.yoctoproject.org/show_bug.cgi?id=14141). The main
> > goal of this bug is to correctly support git submodules with devtool.
> >
> > I currently have an almost ready branch here:
> > https://git.yoctoproject.org/poky-contrib/log/?h=jstephan/devtool-submodule-fix
> >
> > I asked Jon Mason (reporter of the bug) to test the branch, he
> > confirmed that its working for git submodules (i.e recipes using gitsm
> > only) such as vulkan-samples or hafnium (meta-arm), but he also
> > pointed out a new issue highlighted by the recipe edk2-firmware: this
> > recipe is using gitsm for the primary source then extract another git
> > repository inside S.
> >
> > This issue is not related only to gitsm + git recipes, I reproduced
> > this kind of error with   cross-localedef-native recipe, using git +
> > git or https + git.  But I think the issue is even more global: as of
> > today devtool doesn't properly handle recipes that unpack secondary
> > sources inside S. Let suppose we have:
> >
> > SRC_URI = " \
> >   http://.tar.gz \
> >   http://.tar.gz;subdir=mysubdir \
> > "
> > If I need to patch something inside mysubdir I would expect to have
> > something like:
> > SRC_URI = " \
> >   http://.tar.gz \
> >   http://.tar.gz;subdir=mysubdir \
> >   file://mypatch.patch;patchdir=mysubdir \
> > "
> > Of course this is working, but if I run devtool modify, create my
> > patch and do a devtool finish I would have something like
> > SRC_URI = " \
> >   http://.tar.gz \
> >   http://.tar.gz;subdir=mysubdir \
> >   file://mypatch.patch \
> > "
> > where mypatch.patch will patch files inside mysubdir as if they were
> > originally part of the primary source.
> > That might be acceptable (but I personally would prefer to have a
> > patchir parameter matching the subdir parameter).
> > Besides that, there is actually a bug here: trying to modify inside
> > devtool a file that was added using file:// will add a new patch AND
> > modify the original patch... (Tested on master branch with bzip2 with
> > the following: devtool modify bzip2, modify Makefile.am, commit the
> > modification, devtool finish bzip2 will create a new patch file AND
> > also update the originale Makefile.am inside the recipe space)
> >
> > But things get really bad when using a git source as secondary source:
> > SRC_URI = " \
> >   http://.tar.gz \
> >   git ://;destsuffix=mysubdir \
> > "
> > mysubdir gets automatically committed inside the primary source
> > ("Commiting changes from do patch"). This is an issue because doing
> > "git add" on a git directory adds it as a submodule (in a wrong way,
> > the correct way of adding it would be "git submodule add url path").
> > Here we end up with a submodule which is not populated into
> > .gitmodules then "git submodule foreach" commands just fail.
> >
> > My hack is to detect that git directories were added after unpack and
> > properly add them as submodules (" wip: support git tree extracted
> > inside S" in my branch) but I am not 100% satisfied with this because
> > it implies that devtool is managing secondary source differently if
> > they are git directories or not..
> >
> > So the long story made short:
> > * current 

Re: [yocto] [RFC] devtool: support multiple sources

2023-11-14 Thread Alexander Kanavin
I think no one actually anticipated all these corner cases when
devtool was written. In general it's simply not designed to handle
multiple sources in SRC_URI, it can do (tarball or git)+patches, and
not any of the other options. No one is expecting a fix for all of
them, perhaps it's best to keep the scope to plain gitsm://.

I don't have specific advice for the broader issue; if you have ideas,
it would be good to at least document them.

Alex

On Fri, 10 Nov 2023 at 17:24, Julien Stephan  wrote:
>
> Hi all,
>
> Sorry for the long message here, but I would really appreciate
> feedback from the community :)
>
> I am currently working on bug #14141
> (https://bugzilla.yoctoproject.org/show_bug.cgi?id=14141). The main
> goal of this bug is to correctly support git submodules with devtool.
>
> I currently have an almost ready branch here:
> https://git.yoctoproject.org/poky-contrib/log/?h=jstephan/devtool-submodule-fix
>
> I asked Jon Mason (reporter of the bug) to test the branch, he
> confirmed that its working for git submodules (i.e recipes using gitsm
> only) such as vulkan-samples or hafnium (meta-arm), but he also
> pointed out a new issue highlighted by the recipe edk2-firmware: this
> recipe is using gitsm for the primary source then extract another git
> repository inside S.
>
> This issue is not related only to gitsm + git recipes, I reproduced
> this kind of error with   cross-localedef-native recipe, using git +
> git or https + git.  But I think the issue is even more global: as of
> today devtool doesn't properly handle recipes that unpack secondary
> sources inside S. Let suppose we have:
>
> SRC_URI = " \
>   http://.tar.gz \
>   http://.tar.gz;subdir=mysubdir \
> "
> If I need to patch something inside mysubdir I would expect to have
> something like:
> SRC_URI = " \
>   http://.tar.gz \
>   http://.tar.gz;subdir=mysubdir \
>   file://mypatch.patch;patchdir=mysubdir \
> "
> Of course this is working, but if I run devtool modify, create my
> patch and do a devtool finish I would have something like
> SRC_URI = " \
>   http://.tar.gz \
>   http://.tar.gz;subdir=mysubdir \
>   file://mypatch.patch \
> "
> where mypatch.patch will patch files inside mysubdir as if they were
> originally part of the primary source.
> That might be acceptable (but I personally would prefer to have a
> patchir parameter matching the subdir parameter).
> Besides that, there is actually a bug here: trying to modify inside
> devtool a file that was added using file:// will add a new patch AND
> modify the original patch... (Tested on master branch with bzip2 with
> the following: devtool modify bzip2, modify Makefile.am, commit the
> modification, devtool finish bzip2 will create a new patch file AND
> also update the originale Makefile.am inside the recipe space)
>
> But things get really bad when using a git source as secondary source:
> SRC_URI = " \
>   http://.tar.gz \
>   git ://;destsuffix=mysubdir \
> "
> mysubdir gets automatically committed inside the primary source
> ("Commiting changes from do patch"). This is an issue because doing
> "git add" on a git directory adds it as a submodule (in a wrong way,
> the correct way of adding it would be "git submodule add url path").
> Here we end up with a submodule which is not populated into
> .gitmodules then "git submodule foreach" commands just fail.
>
> My hack is to detect that git directories were added after unpack and
> properly add them as submodules (" wip: support git tree extracted
> inside S" in my branch) but I am not 100% satisfied with this because
> it implies that devtool is managing secondary source differently if
> they are git directories or not..
>
> So the long story made short:
> * current implementation of devtool is buggy (at least with the
> scenario described above with bzip2), I may try to work on this latter
> * is the current behaviour of devtool acceptable ? (i.e not adding
> patchir parameter on patches)
> * is my "hack" acceptable to handle git secondary sources as a real
> git submodule?
>
> This is giving me headaches and I would really appreciate the feedback
> of the community on this.
>
> Cheers
> Julien
>
> 
>

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#61678): https://lists.yoctoproject.org/g/yocto/message/61678
Mute This Topic: https://lists.yoctoproject.org/mt/102509834/21656
Group Owner: yocto+ow...@lists.yoctoproject.org
Unsubscribe: https://lists.yoctoproject.org/g/yocto/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



[yocto] [RFC] devtool: support multiple sources

2023-11-10 Thread Julien Stephan
Hi all,

Sorry for the long message here, but I would really appreciate
feedback from the community :)

I am currently working on bug #14141
(https://bugzilla.yoctoproject.org/show_bug.cgi?id=14141). The main
goal of this bug is to correctly support git submodules with devtool.

I currently have an almost ready branch here:
https://git.yoctoproject.org/poky-contrib/log/?h=jstephan/devtool-submodule-fix

I asked Jon Mason (reporter of the bug) to test the branch, he
confirmed that its working for git submodules (i.e recipes using gitsm
only) such as vulkan-samples or hafnium (meta-arm), but he also
pointed out a new issue highlighted by the recipe edk2-firmware: this
recipe is using gitsm for the primary source then extract another git
repository inside S.

This issue is not related only to gitsm + git recipes, I reproduced
this kind of error with   cross-localedef-native recipe, using git +
git or https + git.  But I think the issue is even more global: as of
today devtool doesn't properly handle recipes that unpack secondary
sources inside S. Let suppose we have:

SRC_URI = " \
  http://.tar.gz \
  http://.tar.gz;subdir=mysubdir \
"
If I need to patch something inside mysubdir I would expect to have
something like:
SRC_URI = " \
  http://.tar.gz \
  http://.tar.gz;subdir=mysubdir \
  file://mypatch.patch;patchdir=mysubdir \
"
Of course this is working, but if I run devtool modify, create my
patch and do a devtool finish I would have something like
SRC_URI = " \
  http://.tar.gz \
  http://.tar.gz;subdir=mysubdir \
  file://mypatch.patch \
"
where mypatch.patch will patch files inside mysubdir as if they were
originally part of the primary source.
That might be acceptable (but I personally would prefer to have a
patchir parameter matching the subdir parameter).
Besides that, there is actually a bug here: trying to modify inside
devtool a file that was added using file:// will add a new patch AND
modify the original patch... (Tested on master branch with bzip2 with
the following: devtool modify bzip2, modify Makefile.am, commit the
modification, devtool finish bzip2 will create a new patch file AND
also update the originale Makefile.am inside the recipe space)

But things get really bad when using a git source as secondary source:
SRC_URI = " \
  http://.tar.gz \
  git ://;destsuffix=mysubdir \
"
mysubdir gets automatically committed inside the primary source
("Commiting changes from do patch"). This is an issue because doing
"git add" on a git directory adds it as a submodule (in a wrong way,
the correct way of adding it would be "git submodule add url path").
Here we end up with a submodule which is not populated into
.gitmodules then "git submodule foreach" commands just fail.

My hack is to detect that git directories were added after unpack and
properly add them as submodules (" wip: support git tree extracted
inside S" in my branch) but I am not 100% satisfied with this because
it implies that devtool is managing secondary source differently if
they are git directories or not..

So the long story made short:
* current implementation of devtool is buggy (at least with the
scenario described above with bzip2), I may try to work on this latter
* is the current behaviour of devtool acceptable ? (i.e not adding
patchir parameter on patches)
* is my "hack" acceptable to handle git secondary sources as a real
git submodule?

This is giving me headaches and I would really appreciate the feedback
of the community on this.

Cheers
Julien

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#61651): https://lists.yoctoproject.org/g/yocto/message/61651
Mute This Topic: https://lists.yoctoproject.org/mt/102509834/21656
Group Owner: yocto+ow...@lists.yoctoproject.org
Unsubscribe: https://lists.yoctoproject.org/g/yocto/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-