You are not logged in.
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
Please post the full output of your makepkg run.
Offline
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
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
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
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
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
As one off workarounds you could also adjust the PKGBUILD to use a snapshot or internally download a shallow clone.
Offline
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
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
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
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
Please remember to mark your thread [SOLVED] (edit the title of your first post).
Offline