J'essaie d'apprendre quelque chose à propos de l'emballage de bureau instantané en reconditionnant l'unité-Tweak-tool en un clin d'œil. Je trouve que la documentation est moins que stellaire, mais jusqu'à présent, j'ai un fichier snapcraft.yaml qui ressemble à ceci:
name: unity-Tweak-tool
version: 1
summary: configuration tool for the Unity desktop environment
description: |
Unity Tweak Tool is a settings manager for the Unity desktop.
It provides users with a fast, simple and easy-to-use interface
with which to access many useful and little known features and settings
of the desktop environment that one may want to configure.
apps:
unity-Tweak-tool:
command: $SNAP/usr/bin/unity-Tweak-tool
plugs: [unity7]
parts:
unity-Tweak-tool:
plugin: python3
source: git://github.com/Seth-Johnson/unity-Tweak-tool.git
source-type: git
build-packages:
- python3-distutils-extra
- python3-all
- python3-dbus
- python-dev
stage-packages:
- gir1.2-glib-2.0
- gir1.2-gtk-3.0
- python3-xdg
- python3-cairo
- unity-webapps-service
Cependant, lorsque je lance snapcraft snap
setup.py échoue toujours car plusieurs modules python sont manquants:
Running setup.py install for unity-Tweak-tool ... error
Complete output from command /home/sethj/projects/snappy-testing/parts/unity-Tweak-tool/install/usr/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-s6dwhgys-build/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-xxv1mi7p-record/install-record.txt --single-version-externally-managed --compile --home=/tmp/tmp2y5izah7:
ERROR: Python module values not found
ERROR: Python module apport not found
ERROR: Python module apport.hookutils not found
WARNING: syntax errors in notes/wizardry.py: Missing parentheses in call to 'print' (wizardry.py, line 9)
ERROR: Python module dbus not found
ERROR: Python module dbus.service not found
ERROR: Python module dbus.mainloop.glib not found
(sortie complète ici )
J'admets que je ne suis pas tout à fait sûr de le faire correctement, mais pour autant que je sache, il convient de construire les paquetages listés sous build-packages, qui répondent aux exigences de build pour unity-Tweak-tool.
Où vais-je mal?
Dans le cas de python, vous voulez probablement que certains de ces build-packages
soient stage-packages
. Le plug-in python permet à PYTHONPATH
de faire partie de la capture, raison pour laquelle ces packages sont manquants (vous les avez plutôt installés sur le système hôte).
Soit dit en passant, si cette amont avait un install_requires
dans setup.py
correct, ces dépendances auraient été automatiquement prises en charge pour vous.