You are not logged in.

#1 2022-08-04 16:29:04

iestynapmwg
Member
Registered: 2021-09-27
Posts: 27

[SOLVED] makepkg fails because git clone fails

Hope this is the right place to post this issue...

I'm trying to install a package (enlightenment-git) from AUR, but i'm having issues when makepkg goes to clone the actual git repo. So the "git clone" command for the AUR bit works, it's the cloning of the actual enlightenment source during makepkg that fails. It seems that the source is just "too big" and i don't have the network bandwidth...? The git error that occurs is:

fetch-pack: unexpected disconnect while reading sideband packet
fatal: early EOF
fatal: fetch-pack: invalid index-pack output

Now, i found this solution to the git cloning:

https://stackoverflow.com/questions/212 … ack-failed
(the first solution on that post)

I don't know if it's just turning off compression, or the initial "--depth 1" flag, or if i'm even ending up with the same branch of the source that makepkg was trying to pull. But i can clone "something" this way. It's just not where makepkg wants to find it, though. So i'm not sure how to arrange the downloaded source and the git meta-files in such a way that everything's already "just there" when makepkg runs.

And, again, this isn't about the git files produced by cloning the AUR archive, but what's generated when makepkg uses those to then run git again to download the original source. From other AUR installs it looks like the git meta-files usually found in .git/ are in <packagename>-git/<packagename>/ instead, and i'm not sure where the source files are supposed to go for makepkg to realise they're already downloaded.

Can anyone suggest possible solutions to this?
Thanks!

Last edited by iestynapmwg (2022-08-21 19:28:53)

Offline

#2 2022-08-04 22:06:03

ectospasm
Member
Registered: 2015-08-28
Posts: 273

Re: [SOLVED] makepkg fails because git clone fails

Please post the full output of your makepkg run.

Offline

#3 2022-08-05 12:24:48

a821
Member
Registered: 2012-10-31
Posts: 381

Re: [SOLVED] makepkg fails because git clone fails

Can you clone the upstream repo directly? (sorry, I'm having trouble understanding what "git clone" fails, which is why is important to post the full commands)

git clone https://git.enlightenment.org/enlightenment/enlightenment.git

Offline

#4 2022-08-06 04:41:45

iestynapmwg
Member
Registered: 2021-09-27
Posts: 27

Re: [SOLVED] makepkg fails because git clone fails

a821 wrote:

Can you clone the upstream repo directly?

Nope, not directly:

 
git clone https://git.enlightenment.org/enlightenment/enlightenment.git
Cloning into 'enlightenment'...
remote: Enumerating objects: 196411, done.
remote: Counting objects: 100% (196411/196411), done.
remote: Compressing objects: 100% (52312/52312), done.
error: 8192 bytes of body are still expected94 MiB | 1.35 MiB/s
fetch-pack: unexpected disconnect while reading sideband packet
fatal: early EOF
fatal: fetch-pack: invalid index-pack output

The error message overwrote the "receiving objects" line, which was stuck at 22% for a few minutes. There was still data coming in, at about 1.3 MiB/s, but i'm guessing there were a few large files, because the number of received files was incrementing very slowly.

But, as previously mentioned, i CAN clone it by using:

git clone --depth 1 https://git.enlightenment.org/enlightenment/enlightenment.git

then changing into the enlightenment directory and issuing:

git fetch --unshallow

Actually, i spoke too soon... that did work once. I just tried again and get the same error now during the initial git clone command.

Last edited by iestynapmwg (2022-08-06 05:04:20)

Offline

#5 2022-08-06 04:43:12

iestynapmwg
Member
Registered: 2021-09-27
Posts: 27

Re: [SOLVED] makepkg fails because git clone fails

ectospasm wrote:

Please post the full output of your makepkg run.

makepkg
==> Making package: enlightenment-git 0.25.99.24774.gc8b1077de-1 (Sat 06 Aug 2022 00:35:32 EDT)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Retrieving sources...
  -> Cloning enlightenment git repo...
Cloning into bare repository '/usr/src/aur/enlightenment-git/enlightenment'...
remote: Enumerating objects: 196442, done.
remote: Counting objects: 100% (196442/196442), done.
remote: Compressing objects: 100% (52325/52325), done.
error: 8192 bytes of body are still expected16 MiB | 806.00 KiB/s
fetch-pack: unexpected disconnect while reading sideband packet
fatal: early EOF
fatal: fetch-pack: invalid index-pack output
==> ERROR: Failure while downloading enlightenment git repo
    Aborting...

Offline

#6 2022-08-06 08:32:15

a821
Member
Registered: 2012-10-31
Posts: 381

Re: [SOLVED] makepkg fails because git clone fails

OK. now I get where the problem is. Unfortunately I cannot help you much except trying the solutions in the stackoverflow thread. Maybe try with this github mirror, though it's a bit out-of-date, but I guess you can get the latest commits from the official upstream repo.

But i can clone "something" this way. It's just not where makepkg wants to find it, though. So i'm not sure how to arrange the downloaded source and the git meta-files in such a way that everything's already "just there" when makepkg runs.

If you manage somehow to clone the enlightenment git sources, you need to put them in either $SRCDEST (if you set it, see makepkg.conf(5)) or the same directory of the PKGBUILD as a bare repo (which means you may need to make another local clone). Inside this bare repo you need to set the remote "origin" url as the same the sources in the PKGBUILD, ie,

git remote set-url origin https://git.enlightenment.org/enlightenment/enlightenment.git 

Offline

#7 2022-08-07 18:20:36

ectospasm
Member
Registered: 2015-08-28
Posts: 273

Re: [SOLVED] makepkg fails because git clone fails

You could also try using the SSH transport.  You may need to upload your public key to the Enlightenment Git system, so if you don't already have an account there you'll need to create one.  Then use the following URL to clone:

git clone ssh://git@git.enlightenment.org/enlightenment/enlightenment.git

I've seen where the HTTP method won't let large files through, but SSH usually isn't so encumbered.  You may need to change the username from git to something else, and if Enlightenment doesn't allow the SSH method you need to post an issue in their Git system.

Last edited by ectospasm (2022-08-07 18:21:12)

Offline

#8 2022-08-07 19:10:36

loqs
Member
Registered: 2014-03-06
Posts: 17,192

Re: [SOLVED] makepkg fails because git clone fails

As one off workarounds you could also adjust the PKGBUILD to use a snapshot or internally download a shallow clone.

Offline

#9 2022-08-20 15:37:42

iestynapmwg
Member
Registered: 2021-09-27
Posts: 27

Re: [SOLVED] makepkg fails because git clone fails

a821 wrote:

If you manage somehow to clone the enlightenment git sources, you need to put them in either $SRCDEST (if you set it, see makepkg.conf(5)) or the same directory of the PKGBUILD as a bare repo (which means you may need to make another local clone). Inside this bare repo you need to set the remote "origin" url as the same the sources in the PKGBUILD, ie,

git remote set-url origin https://git.enlightenment.org/enlightenment/enlightenment.git 

Sorry to revisit this after so long, but i was FINALLY able to clone the repo manually! I currently have in my .../enlightentment-git/ directory:

ls -a
.SRCINFO  .git  .gitignore  PKGBUILD  enlightenment

The git stuff there is the AUR repo.  Under the enlightenment directory i have:

ls -a
.   .git        .mailmap  COPYING    TODO.md  data  meson        meson_options.txt  po   x-ui.sh
..  .gitignore  AUTHORS   README.md  confs    doc   meson.build  old                src  xdebug.sh

And the git info there is from git.enlightentment.org.

I'm unsure of the next step... Specifically, what is meant by:
"the same directory of the PKGBUILD as a bare repo (which means you may need to make another local clone)."

So, basically, i have the sources, how do i make it so the makepkg can find them instead of attempting (and failing) to download them all over again? Is the idea to make a "bare clone" with makepkg and then copy the sources into whatever directories are created and then run a regular makepkg? If so, how to i tell makepkg to only do this bare clone and stop before trying to build?

Offline

#10 2022-08-20 16:02:32

iestynapmwg
Member
Registered: 2021-09-27
Posts: 27

Re: [SOLVED] makepkg fails because git clone fails

You know, i think i got lucky this time.  The sources are actually already in the correct location as it turns out. In previous attempts i had cloned into another directory and simply tried moving them over, but all the references in the git metadata were then wrong. This time it "just worked"!

Thanks for your help, everyone!

Offline

#11 2022-08-20 20:06:15

a821
Member
Registered: 2012-10-31
Posts: 381

Re: [SOLVED] makepkg fails because git clone fails

I meant creating a bare repository of the local clone by calling git with the --bare option. See the option --bare here or search the web for 'git bare repository'. In short, something like this (I tested it last time and I'm now recalling from memory)

cd /some/path/aur/enlightenment-git/
mv enlightenment /tmp
git clone --bare /tmp/enlightenment enlightenment
cd enlightenment
git remote set-url https://<enlightenment git repo URL>

Where "/some/path/aur/enlightenment-git/" is where the PKGBUILD is together with the enlightenment source repo, and <enlightment git repo URL> should be the same source URL of the PKGBUILD. (I used /tmp to save repo but you can use another destination of course)

Offline

#12 2022-08-21 16:42:26

iestynapmwg
Member
Registered: 2021-09-27
Posts: 27

Re: [SOLVED] makepkg fails because git clone fails

Thank you again! This is the missing piece of the puzzle, had i needed to move the cloned repo again. Saving this for reference!

Offline

#13 2022-08-21 16:46:34

2ManyDogs
Forum Moderator
Registered: 2012-01-15
Posts: 4,645

Re: [SOLVED] makepkg fails because git clone fails

Please remember to mark your thread [SOLVED] (edit the title of your first post).


How to post. A sincere effort to use modest and proper language and grammar is a sign of respect toward the community.

Offline

Board footer

Powered by FluxBB