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]
-=-=-=-=-=-=-=-=-=-=-=-