Hi all!
After trying to snap a godot app with success (thank you guys!) Iβm trying something more difficult and make the snap of persepolis, a python download manager.
Here my snapcraft.yaml file made following this great how-to plus some requested dependencies:
name: persepolis
version: git
summary: Persepolis
description: |
Persepolis is a download manager & a GUI for Aria2.
base: core18
confinement: devmode
if you try yourself th yaml you will find there is only a missing dependency: youtube-dl
I tried to put that strings in the parts/persepolis/stage-packages but it doesnβt work
Also, existing a youtube-dl snap, I tried to add a stage-snaps (following this doc) by adding in the same location a
stage-snaps:
- youtube-dl
resulting in this error:
Failed to load plugin: properties failed to load for persepolis: Additional properties are not allowed ('stage-snaps' was unexpected)
/snap/persepolis$ snapcraft
Failed to load plugin: properties failed to load for persepolis: Additional properties are not allowed ('stage-snaps' was unexpected)
I found that I had 2 snapcraft versions, one from repository (version 2.43.1) and one from snap ( version 3.10.1); I donβt know why but probably the repository version was the one used by default. anyway I removed the older version and after correcting a multipass error snapcraft was able to complete the dependencies processβ¦now I only need to find the right launch command location
Iβm having problem related to the apps: command: section; my snap compile and install successfully, but when i try to launch the app I receive this error:
:~/snap/persepolis$ persepolis
/snap/persepolis/x2/usr/bin/python3: can't open file '/snap/persepolis/x2/persepolis/__main__.py': [Errno 2] No such file or directory
this is all I have in the snap file:
/snap/persepolis/x2$ tree -d -L 2
.
βββ bin
βββ etc
β βββ bash_completion.d
β βββ ca-certificates
β βββ fish
β βββ fonts
β βββ glvnd
β βββ gss
β βββ init.d
β βββ openal
β βββ pulse
β βββ python2.7
β βββ python3.6
β βββ sensors.d
β βββ ssl
β βββ X11
βββ lib
β βββ python3.6
β βββ udev
β βββ x86_64-linux-gnu
βββ meta
β βββ gui
βββ meta.youtube-dl
βββ share
β βββ doc
β βββ man
βββ snap
β βββ command-chain
βββ snap.youtube-dl
β βββ command-chain
βββ usr
β βββ bin
β βββ include
β βββ lib
β βββ sbin
β βββ share
βββ var
βββ lib
so there is not any of the source files where my snapcraft.yaml is locatedβ¦
also I tried adding a bin directory containing an executable file like the one in the Doc:
#!/usr/bin/env python
# Startup from system-wide installation
# Copyright (C) 2002 - 2009 John Goerzen
# <jgoerzen@complete
#
# This program is free software;.....
import sys
import os
from persepolis import persepolis
oi = persepolis.main()
oi.run()
but changing the command part in the snapcraft.yaml like this:
The command 'bin/persepolis' was not found in the prime directory, it has been changed to 'bin/persepolis'.
Failed to generate snap metadata: The specified command 'bin/persepolis' defined in the app 'persepolis' is not executable.
Run the same command again with --debug to shell into the environment if you wish to introspect this failure.
but the file has executable authorization:
~/snap/persepolis/bin$ ls -l
totale 12
-rwxrwxr-x 1 aurelio aurelio 953 mar 21 08:57 persepolis
Iβve worked-up a Minimum Viable Product Snap package for you, based on your work. Iβve filed it as a pull-request against your fork of Persepolis at: