Git commit failed with mbedtls/framework
ZHANG Yuntian
yt at radxa.com
Fri Jan 24 07:05:28 CET 2025
Hi Tom,
On 2024/11/19 01:18, Tom Rini wrote:
> On Mon, Nov 18, 2024 at 12:16:18PM -0500, Raymond Mao wrote:
>> Hi Tom,
>>
>> On Mon, 18 Nov 2024 at 11:41, Tom Rini <trini at konsulko.com> wrote:
>>
>>> On Mon, Nov 18, 2024 at 11:27:06AM -0500, Raymond Mao wrote:
>>>> Hi Tom,
>>>>
>>>> On Mon, 18 Nov 2024 at 10:37, Tom Rini <trini at konsulko.com> wrote:
>>>>
>>>>> On Mon, Nov 18, 2024 at 10:24:32AM -0500, Raymond Mao wrote:
>>>>>> Hi Tony,
>>>>>>
>>>>>> On Sat, 16 Nov 2024 at 02:39, Tony Dinh <mibodhi at gmail.com> wrote:
>>>>>>
>>>>>>> Hi Raymond,
>>>>>>>
>>>>>>> On Fri, Nov 15, 2024 at 1:55 PM Raymond Mao <
>>> raymond.mao at linaro.org>
>>>>>>> wrote:
>>>>>>>>
>>>>>>>> Hi Tony and Tom,
>>>>>>>>
>>>>>>>> On Fri, 15 Nov 2024 at 16:35, Tony Dinh <mibodhi at gmail.com>
>>> wrote:
>>>>>>>>>
>>>>>>>>> Hi Tom,
>>>>>>>>> Hi Raymond,
>>>>>>>>>
>>>>>>>>> On Fri, Nov 15, 2024 at 1:09 PM Raymond Mao <
>>> raymond.mao at linaro.org
>>>>>>
>>>>>>> wrote:
>>>>>>>>>>
>>>>>>>>>> Hi Tony
>>>>>>>>>>
>>>>>>>>>> On Fri, 15 Nov 2024 at 15:32, Tony Dinh <mibodhi at gmail.com>
>>>>> wrote:
>>>>>>>>>>>
>>>>>>>>>>> Hi Tom,
>>>>>>>>>>>
>>>>>>>>>>> On Fri, Nov 15, 2024 at 11:27 AM Tony Dinh <
>>> mibodhi at gmail.com>
>>>>>>> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>> Hi Tom,
>>>>>>>>>>>>
>>>>>>>>>>>> On Fri, Nov 15, 2024 at 6:17 AM Tom Rini <
>>> trini at konsulko.com>
>>>>>>> wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>> On Thu, Nov 14, 2024 at 08:26:33PM -0800, Tony Dinh
>>> wrote:
>>>>>>>>>>>>>> Hi Tom,
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> I am on 2025.01-rc2, and I am trying to commit some
>>> files.
>>>>> The
>>>>>>> error
>>>>>>>>>>>>>> seems to indicate this framework directory might need
>>> some
>>>>>>>>>>>>>> modification. Did I miss something?
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> error: 'lib/mbedtls/external/mbedtls/framework' does
>>> not
>>>>> have
>>>>>>> a commit
>>>>>>>>>>>>>> checked out
>>>>>>>>>>>>>> fatal: updating files failed
>>>>>>>>>>>>>
>>>>>>>>>>>>> That's odd. You didn't happen to try out some of the
>>> previous
>>>>>>> lwIP
>>>>>>>>>>>>> iterations on that tree did you?
>>>>>>>>>>>>
>>>>>>>>>>>> No, I did not. The tree is clean with "make mrproper" and
>>> on
>>>>> the
>>>>>>>>>>>> master branch. I just did a git pull and worked on it.
>>>>>>>>>>>>
>>>>>>>>>>>> I went and looked at
>>> https://github.com/Mbed-TLS/mbedtls.git.
>>>>> The
>>>>>>>>>>>> framework directory is pointing to a specific commit.
>>>>>>>>>>>> framework @ 3867faa
>>>>>>>>>>>>
>>>>>>>>>>>> I'll stash and repeat it on another clean tree.
>>>>>>>>>>>
>>>>>>>>>>> I have the same commit error on a brand new tree.
>>>>>>>>>>>
>>>>>>>>>> I think you are talking about the test framework of MbedTLS's
>>>>>>> original testsuite,
>>>>>>>>>> am I right?
>>>>>>>>>> MbedTLS was ported into U-Boot as a git subtree and that
>>>>> framework is
>>>>>>> a git
>>>>>>>>>> submodule of original MbedTLS repo which was not included in
>>> the
>>>>>>> porting
>>>>>>>>>> of U-Boot since U-Boot has its own testsuite.
>>>>>>>>>
>>>>>>>>> Here is what I found.
>>>>>>>>>
>>>>>>>>> git clone https://github.com/u-boot/u-boot.git
>>> u-boot-master-test
>>>>>>>>> cd /usr/src/u-boot-master-test/
>>>>>>>>> patch -p1 <
>>>>> ../builds-u-boot-marvell/sheevaplug/sheevaplug_bootstd.patch
>>>>>>>>> git add .
>>>>>>>>> git commit . -m "arm: kirkwood: Enable bootstd and remove jffs2
>>> for
>>>>>>>>> Sheevaplug board" -e
>>>>>>>>>
>>>>>>>>> The git commit above gave out this error:
>>>>>>>>>
>>>>>>>>> error: 'lib/mbedtls/external/mbedtls/framework' does not have a
>>>>> commit
>>>>>>>>> checked out
>>>>>>>>> fatal: updating files failed
>>>>>>>>>
>>>>>>>>> So I tried to commit only the specific files, and it works OK.
>>>>>>>>>
>>>>>>>>> git commit configs/sheevaplug_defconfig
>>> include/configs/sheevaplug.h
>>>>>>>>> -m "arm: kirkwood: Enable bootstd and remove jffs2 for
>>> Sheevaplug
>>>>>>>>> board" -e
>>>>>>>>> [master 47de8cff2d] arm: kirkwood: Enable bootstd and remove
>>> jffs2
>>>>> for
>>>>>>>>> Sheevaplug board
>>>>>>>>> 2 files changed, 17 insertions(+), 19 deletions(-)
>>>>>>>>>
>>>>>>>>> I think it must be what Raymond said above. So perhaps during
>>> Tom's
>>>>> PR
>>>>>>>>> pull, the framework directory was created. But "git commit ."
>>> does
>>>>> not
>>>>>>>>> like the empty lib/mbedtls/external/mbedtls/framework directory.
>>>>>>>>>
>>>>>>>> Under the native MbedTLS git repo, by default it has a
>>> "framework"
>>>>>>> pointing to
>>>>>>>> its git submodule.
>>>>>>>> Maybe we should mark it in the gitignore.
>>>>>>>
>>>>>>> I've tried .gitignore but could not make it work (my Gitfu is
>>> pretty
>>>>>>> lousy). Can you suggest how that should be done?
>>>>>>>
>>>>>>> You can use the command without the '.' : git commit -m
>>> "<commit_msg>",
>>>>>> this
>>>>>> should work.
>>>>>>
>>>>>> @Tom Rini <trini at konsulko.com> Shall we remove both
>>>>>> "lib/mbedtls/external/mbedtls/.gitmodules" and
>>>>>> "lib/mbedtls/external/mbedtls/framework"? I can submit a patch if you
>>>>> agree.
>>>>>
>>>>> Can we do that and not make a problem for the next resync?
>>>>>
>>>>> Hmmm, no, this cannot be pulled back to the MbedTLS upstream so still a
>>>> problem
>>>> when resync.
>>>> Another option is to include that git submodule into the U-Boot project,
>>>> this needs
>>>> to revert the commit of introducing the library and redo the git subtree
>>>> after the
>>>> submodule is updated, but it does not seem to be a good choice as we
>>> don't
>>>> use
>>>> that test framework in U-Boot at all.
>>>> Right now I don't have a perfect solution, maybe we can accept using git
>>>> commit
>>>> without the '.'?
>>>
>>> Hmm. Maybe we just delete the .gitmodules / directory and it shouldn't
>>> be too hard to deal with on updates. I have to do some small fixups with
>>> the device tree ones anyhow sometimes.
>>>
>>> How about checking and deleting this in the subtree update script?
>> Then we can skip manually doing this each time.
>> I can make a patch for it if you feel fine.
>
> Lets worry about that if it's a problem when we resync next.
I'm currently working with Jonas Karlman's Rockchip fork[1] which is
based on a416d9e680718de1c76c4196e1db77e3ca07662f. The fork is included
as a git submodule so we can provide distro packaging[2] that are
unrelated to U-Boot. We build our package with GitHub Action, and this
issue currently blocks us from checking out the code at all with the
following workflow snippet:
- name: Checkout
uses: actions/checkout at v4
with:
submodules: recursive
Related error logs are here:
|> Fetching submodules
/usr/bin/git submodule sync --recursive
/usr/bin/git -c protocol.version=2 submodule update --init --force
--recursive
Submodule 'src/rkbin' (https://github.com/rockchip-linux/rkbin.git)
registered for path 'src/rkbin'
Submodule 'src/u-boot'
(https://github.com/Kwiboo/u-boot-rockchip.git) registered for path
'src/u-boot'
Cloning into '/home/runner/work/u-boot-kwiboo/u-boot-kwiboo/src/rkbin'...
Cloning into
'/home/runner/work/u-boot-kwiboo/u-boot-kwiboo/src/u-boot'...
Submodule path 'src/rkbin': checked out
'0f8ac860f0479da56a1decae207ddc99e289f2e2'
Submodule path 'src/u-boot': checked out
'f3231571f4f9c3f72dcb6458aaa2de2462c605df'
Error: fatal: No url found for submodule path
'src/u-boot/lib/mbedtls/external/mbedtls/framework' in .gitmodules
Error: fatal: Failed to recurse into submodule path 'src/u-boot'
Error: The process '/usr/bin/git' failed with exit code 128
This issue potentially breaks all projects who include the recent U-Boot
as a git submodule in their GitHub Workflow.
1: https://github.com/Kwiboo/u-boot-rockchip/tree/rk3528-2025.04-wip
2: https://github.com/radxa-pkg/u-boot-kwiboo/actions
>
--
Best regards,
ZHANG, Yuntian
Operating System Developer
Radxa Computer (Shenzhen) Co., Ltd
Shenzhen, China
More information about the U-Boot
mailing list