You are not logged in.

#1 2016-04-16 01:24:46

lilmike
Member
Registered: 2014-09-25
Posts: 26

horseshoes-git failing with git-lfs

Hi,
I am the co-maintainer of the horseshoes-git package in the AUR, and one of the developers of the software itself. We just recently switched over to using git-lfs to prevent the repository from becoming absolutely huge, and found that, even when setup properly to require git-lfs (also from the AUR) in the PKGBUILD, it fails to download the lfs-tracked files.

I am using pacaur to test, and have verified that cloning the repository without using the package works just fine. The error it gives is 'lfs smudge filter failed', with 'unsupported protocol' in the logs, which all I've been able to figure out usually comes up because the remote being pulled from is not named origin, but that doesn't seem to be (shouldn't?) be the case here.

The current version of the package is in the AUR under horseshoes-git, and the repository  (if you want to test cloning without the package) is found at https://github.com/2mb-solutions/horseshoes.git

Thanks for any help,
-Michael.
P.S. Just before posting this topic I tried using simple makepkg -si, and it did the same thing.

Offline

#2 2016-04-16 16:06:52

Lone_Wolf
Member
From: Netherlands, Europe
Registered: 2005-10-04
Posts: 11,868

Re: horseshoes-git failing with git-lfs

Below is outpout of building with git-lfs removed from PKGBUILD , no problems at all.

what are the lfs-tracked files that fail downloading ?


$ makepkg -Crs
==> Making package: horseshoes-git 116-2 (za 16 apr 2016 18:01:18 CEST)
==> Checking runtime dependencies...
==> Installing missing dependencies...
[sudo] password for panoramix: 
resolving dependencies...
looking for conflicting packages...

Package (3)              New Version  Net Change  Download Size

extra/dotconf            1.3-4          0.17 MiB               
community/allegro        5.0.11-1       2.08 MiB       0.42 MiB
extra/speech-dispatcher  0.8.3-6        1.42 MiB               

Total Download Size:   0.42 MiB
Total Installed Size:  3.66 MiB

:: Proceed with installation? [Y/n] 
:: Retrieving packages...
 allegro-5.0.11-1-x86_64                   433.4 KiB  6.72M/s 00:00 [######################################] 100%
(3/3) checking keys in keyring                                      [######################################] 100%
(3/3) checking package integrity                                    [######################################] 100%
(3/3) loading package files                                         [######################################] 100%
(3/3) checking for file conflicts                                   [######################################] 100%
(3/3) checking available disk space                                 [######################################] 100%
:: Processing package changes...
(1/3) installing dotconf                                            [######################################] 100%
(2/3) installing speech-dispatcher                                  [######################################] 100%
Optional dependencies for speech-dispatcher
    festival: Speech output using Festival
    espeak: Speech output using ESpeak [installed]
    pulseaudio: PulseAudio support
(3/3) installing allegro                                            [######################################] 100%
==> Checking buildtime dependencies...
==> Retrieving sources...
  -> Cloning horseshoes git repo...
Cloning into bare repository '/home/panoramix/Documents/WIP/source_files/horseshoes'...
remote: Counting objects: 33, done.
remote: Compressing objects: 100% (8/8), done.
remote: Total 33 (delta 2), reused 0 (delta 0), pack-reused 25
Unpacking objects: 100% (33/33), done.                                                                           
Checking connectivity... done.                                                                                   
  -> Found horseshoes.desktop                                                                                    
  -> Found horseshoes.sh                                                                                         
==> Validating source files with md5sums...                                                                      
    horseshoes ... Skipped                                                                                       
    horseshoes.desktop ... Passed                                                                                
    horseshoes.sh ... Passed
==> Removing existing $srcdir/ directory...
==> Extracting sources...
  -> Creating working copy of horseshoes git repo...
Cloning into 'horseshoes'...
done.
==> Starting pkgver()...
==> Updated version: horseshoes-git 3-1
==> Starting build()...
Submodule 'game-kit' (https://github.com/2mb-solutions/game-kit.git) registered for path 'game-kit'
Cloning into 'game-kit'...
remote: Counting objects: 357, done.
remote: Compressing objects: 100% (53/53), done.
remote: Total 357 (delta 30), reused 20 (delta 20), pack-reused 284
Receiving objects: 100% (357/357), 815.18 KiB | 464.00 KiB/s, done.
Resolving deltas: 100% (61/61), done.
Checking connectivity... done.
Submodule path 'game-kit': checked out '340e16888c3f51d1fa392374087ddfcbd5f4af19'
==> Entering fakeroot environment...
==> Starting package()...
==> Tidying install...
  -> Removing libtool files...
  -> Purging unwanted files...
  -> Removing static library files...
  -> Stripping unneeded symbols from binaries and libraries...
  -> Compressing man and info pages...
==> Checking for packaging issue...
==> Creating package "horseshoes-git"...
  -> Generating .PKGINFO file...
  -> Generating .BUILDINFO file...
  -> Adding install file...
  -> Generating .MTREE file...
  -> Compressing package...
==> Leaving fakeroot environment.
==> Finished making: horseshoes-git 3-1 (za 16 apr 2016 18:01:40 CEST)
==> Removing installed dependencies...
checking dependencies...

Package (3)        Old Version  Net Change

allegro            5.0.11-1      -2.08 MiB
dotconf            1.3-4         -0.17 MiB
speech-dispatcher  0.8.3-6       -1.42 MiB

Total Removed Size:  3.66 MiB

:: Do you want to remove these packages? [Y/n] 
:: Processing package changes...
(1/3) removing speech-dispatcher                                    [######################################] 100%
(2/3) removing dotconf                                              [######################################] 100%
(3/3) removing allegro                                              [######################################] 100%
$ 

Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.


(A works at time B)  && (time C > time B ) ≠  (A works at time C)

Offline

#3 2016-04-23 01:13:35

lilmike
Member
Registered: 2014-09-25
Posts: 26

Re: horseshoes-git failing with git-lfs

Hi,
The lfs files that fail downloading are all of the sounds that are required for the game to run and be playable. If you remove lfs, it would still download the git repo, but the sounds files would just be pointer files to where the lfs files are stored.
Thanks,
-Michael.

Offline

#4 2016-04-23 13:18:58

Lone_Wolf
Member
From: Netherlands, Europe
Registered: 2005-10-04
Posts: 11,868

Re: horseshoes-git failing with git-lfs

Ok, i looked further into this and saw what is going wrong.

I think the problem is between makepkg git support and the git-lfs extension.
I'm 99% sure that when git support was added to makepkg, there was a discussion about whether makepkg should use full checkouts or not .
It was decided that makepkg would use a "shallow clone" .

Maybe the git-lfs extension doesn't work well with shallow clones, or the way makepkg gets the clone doesn't work with git extensions.

Pacman devs are prob the only ones that can give more info / help out, not sure how you should get in touch with them.
(a bug report in the tracker is likely to be closed because lfs-git is not in official repos. pacman-dev mailinglist would be an option but i have no idea if that's open to non-devs.)

For a workaround I suggest you fallback on the old method of manually doing the checkout in the build function .


Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.


(A works at time B)  && (time C > time B ) ≠  (A works at time C)

Offline

#5 2016-04-23 14:06:20

Scimmia
Fellow
Registered: 2012-09-01
Posts: 11,463

Re: horseshoes-git failing with git-lfs

It was decided to do a full clone, not a shallow one.

If you fall back to doing it manually, you should do it in the prepare function, not the build function.

Offline

#6 2016-04-25 14:05:38

lilmike
Member
Registered: 2014-09-25
Posts: 26

Re: horseshoes-git failing with git-lfs

Thanks all! I haven't had a chance to try this out yet, but I will certainly let you know how it goes.
-Michael.

Offline

Board footer

Powered by FluxBB