Trying to package angband as snap

Didier Roche didrocks at ubuntu.com
Wed Jul 27 07:06:42 UTC 2016


+ Gustavo on that one

Le 27/07/2016 à 09:02, Didier Roche a écrit :
> Le 20/07/2016 à 22:51, Radek Sprta a écrit :
>> Hey,
>>
>> I tried packaging Angband as as snap. This is what I have as
>> snapcraft.yaml: 
>>
>> name: angband
>> version: "4.0.5"
>> summary: Single-player, text-based, dungeon simulation game 
>> confinement: devmode
>>
>> apps:
>>   angband:
>>     command: games/angband
>>     plug: [x11, unity7, home, pulseaudio]
>>
>> parts:
>>   angband:
>>     plugin: autotools
>>     configflags: ["--enable-sdl"]
>>     source: http://rephial.org/downloads/4.0/angband-4.0.5.tar.gz
>>     build-packages:
>>       - libsdl1.2-dev
>>       - libsdl-ttf2.0-dev
>>       - libsdl-mixer1.2-dev
>>       - libsdl-image1.2-dev
>>
>> The game gets packaged, but fails to run, because it looks for the
>> files in /share/games/angband instead of $SNAP/share/games/angband
>>
>> I tried packaging it with '--no-install' and 'prefix=$SNAP' options
>> (changing command to angband), but both result in:
>> /snap/angband/100001/command-angband.wrapper: 5: exec: angband:
>> Permission denied 
>>
>> The snappy-debug gives suggestions such as:
>> * adjust program to read necessary files from $SNAP, $SNAP_DATA or
>> $SNAP_USER_DATA
>> and 
>> * adjust program to execute binaries directly from $SNAP instead of
>> /snap/bin
>>
>> Do I just fail at snapcraft or does the game really need to be patched?
> Hey Radek,
>
> The good news is that you are not alone! It's something we encountered
> in quite some project (having data dir hardcoded at build time based on
> prefix) without any relocatable path for it. I did file
> https://bugs.launchpad.net/ubuntu/+source/snapcraft/+bug/1583250/ at the
> time (and just added snappy upstream bug to it).
>
> Gustavo, do you think we can have some actionable actions on this and
> some ideas of when a proper solution would be provided? I know we talked
> to have a syscalls redirect LD_PRELOAD lib. For context, we are seeing
> quite some people having similar issues with desktop apps on the playpen
> and not pursuing their snap journey due to this.
>
> Meanwhile, something that worked for some projects is to "install-via:
> prefix" like we did for galculator:
> https://github.com/ubuntu/snappy-playpen/blob/master/galculator/snapcraft.yaml#L22.
> Another solution, that you mentioned is to hardcode
> "--prefix=/snap/<snap_name>/current" is an immediate fix, but it means:
> * the snap depends on being installed at that location, which isn't
> ensured in the future.
> * then, you end up mostly with you binaries in
> /snap/<snap_name>/current/snap/<snap_name>/current/bin (notice the
> repetition), which is way you have the exec issue and need to move the
> content post-build to the correct location via a custom plugin or the
> "organize" keyword.
>
> Cheers,
> Didier
>
>





More information about the Snapcraft mailing list