TMDS64EVM: Linux build problems due to cloning issues

Part Number: TMDS64EVM

The website https://git.ti.com/cgit/ti-sdk-linux/meta-tisdk/ is accessible but my builds are failing because I'm unable to clone the package

git clone git://git.ti.com/ti-sdk-linux/meta-tisdk.git
Cloning into 'meta-tisdk'...
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

This has been the case for almost a week now.

  • Hi David,

    There are some known issues with the TI repos.

    The git:// protocol is no longer served on git.ti.com.

    The cgit web pages load because they use HTTPS, but git:// is no longer supported. Please use HTTPS instead.

    A plain HTTPS clone of this repo currently fails with HTTP 501.

    With the HTTPS URL, git clone fails during the POST .../git-upload-pack request:

    error: RPC failed; HTTP 501 curl 22 The requested URL returned error: 501
    fatal: error reading section header 'shallow-info'

    I reproduced this with git 2.34.1, and it behaves the same with protocol v0, v1 and v2. Other repos on git.ti.com (for example ti-u-boot) clone fine, and git ls-remote works for this repo, so the issue appears specific to the large multi-ref request a default clone sends.

    Please try out the following workarounds for now.

    Workarounds

    Option A: clone from the GitHub mirror (simplest):

    git clone https://github.com/TexasInstruments/meta-tisdk.git

    Please verify that the branch or tag your SDK build needs is present. To make Yocto/oe-layersetup use it without editing any recipes, map the URL in git:

    git config --global url."https://github.com/TexasInstruments/meta-tisdk.git".insteadOf "https://git.ti.com/git/ti-sdk-linux/meta-tisdk.git"
    git config --global --add url."https://github.com/TexasInstruments/meta-tisdk.git".insteadOf "git://git.ti.com/ti-sdk-linux/meta-tisdk.git"

    You'll have to repeat this for other failing repos.

    Option B: clone only the branch you need from git.ti.com:

    git clone --single-branch --branch master https://git.ti.com/git/ti-sdk-linux/meta-tisdk.git

    Other branches or tags can be fetched individually with git fetch origin <ref>. Avoid git fetch --all and --tags, which send the large request that fails.

    After either option, remove any leftover partial clone (e.g. sources/meta-tisdk) and any matching entries under downloads/git2/ before re-running the build.

    Please let us know if this unblocks you, or share the full error output if it doesn’t.

    Regards,
    Vinu

  • Hi Vinu
    Thanks for your reply. I have tried all 4 clone options on the bottom of the page this morning. All have failed.

    In actual fact the package I want is the sitara-apps but I could not find that on github. I've just repeated the clone attemp. All 4 urls failed

    me:~/repo-downloads/rubbish$ git clone https://git.ti.com/git/processor-sdk/sitara-apps.git
    Cloning into 'sitara-apps'...
    error: RPC failed; HTTP 501 curl 22 The requested URL returned error: 501
    fatal: expected 'packfile'
    me:~/repo-downloads/rubbish$ git clone https://git.ti.com/cgit/processor-sdk/sitara-apps
    Cloning into 'sitara-apps'...
    fatal: unable to access 'https://git.ti.com/cgit/processor-sdk/sitara-apps/': The requested URL returned error: 403
    me:~/repo-downloads/rubbish$ git clone git://git.ti.com/processor-sdk/sitara-apps.git
    Cloning into 'sitara-apps'...
    fatal: Could not read from remote repository.
    
    Please make sure you have the correct access rights
    and the repository exists.
    me:~/repo-downloads/rubbish$ git clone http://git.ti.com/git/processor-sdk/sitara-apps.git
    Cloning into 'sitara-apps'...
    error: RPC failed; HTTP 501 curl 22 The requested URL returned error: 501
    fatal: expected 'packfile'
    
    

  • The command used by bitbake via meta-tisdk layer is

    git -c gc.autoDetach=false -c core.pager=cat -c safe.bareRepository=all clone --bare  --mirror git://git.ti.com/processor-sdk/sitara-apps.git

    I have modified the protocol to https but this still fails. It seems that the site is not accepting the --bare switch. The following does work

    git -c gc.autoDetach=false -c core.pager=cat -c safe.bareRepository=all clone --single-branch --branch master  --mirror https://git.ti.com/git/processor-sdk/sitara-apps.git

    This may have a knock on effect in bitbake

  • Hi David,

    I could clone the https link using single branch.

    Please try the following

    git clone --single-branch --branch master https://git.ti.com/git/processor-sdk/sitara-apps.git

    Regards,
    Vinu

  • Hi Vinu
    I am also able to clone like that. The problem is that bitbake uses the --bare switch which is apparently disabled now 

  • I have modified the bb recipe and it now seems to fetch it correctly. I must add that I am only just learinng bitbake and so this is probably an elementary mistake.

    TI's original recipe is in sitara-ipc-app.bb
    Original

    SRC_URI = " \
        git://git.ti.com/git/processor-sdk/sitara-apps.git;protocol=https;branch=master \
    "
    SRCREV = "6854fef24281893478d5d84be00d16f56b95b441"
    

    Modification. The checksum information was proposed in the log file of the failure

    SRC_URI = " \
        https://git.ti.com/cgit/processor-sdk/sitara-apps;protocol=https;branch=master \
    "
    SRCREV = "6854fef24281893478d5d84be00d16f56b95b441"
    SRC_URI[sha256sum] = "66761c6e5890caaa0e841243e45b34c2e518253621c56fdc802a003cf01e208b"
    

  • Hi David,

    BitBake picks its fetcher from the URL scheme:

    • git://...;protocol=https is the git fetcher, so it clones the repo and checks out SRCREV. This is TI’s original.
    • https://... is the wget fetcher, which downloads a single file.

    The modified URL, https://git.ti.com/cgit/processor-sdk/sitara-apps, is the cgit web page, not a git endpoint.

    So BitBake must almost certainly be downloading an HTML page, which would explain why a checksum was needed and why the log suggested one.

    SRCREV, branch=master, and protocol=https are git-fetcher settings that the wget fetcher ignores.

    Also, --bare is a purely client-side option, so the server never sees it and can’t “disable” it.

    Can you try keeping the git fetcher and pre-seed the cache (cleanest, since the recipe stays as TI wrote it)?

    git clone --bare --single-branch --branch master \
    https://git.ti.com/git/processor-sdk/sitara-apps.git \
    $DL_DIR/git2/<name from: bitbake -e sitara-ipc-app | grep ^GITDIR>
    Then BitBake finds 6854fef2... locally and skips the network.

    Regards,
    Vinu

  • I have restored the TI original scheme and pre-seeded the cache. The package has built. 
    Thank you Vinu

    seems a bit off to have to do this though

  • Hi David,

    Thanks for the confirmation.

    This is just a temporary workaround, the IT infrastructure team is working to resolve the issue already. 

    So, hopefully this will be resolved soon. I'll close this thread now.

    Regards,
    Vinu