Installation de Tikka sur Linux

Je vais essayer de faire des releases de Tikka faciles à installer.

Pour l’instant, je génère un exécutable autonome pour Ubuntu 18.04, et ceci automatiquement dans une pipeline de CI/CD de notre Gitlab.

J’aimerais ajouter à la panoplie des releases :

  • Un exécutable autonome pour Windows généré via un gitlab runner tournant sur Windows.
  • Un exécutable autonome pour MacOS généré via un gitlab runner tournant sur MacOS.

Pour cela je suis à la recherche de :

Pour Windows, le contributeur peut rester anonyme :wink: .

En fait, c’est faisable plus facilement pour Windows et MacOS, je pense, car il y a moins de versions de ces OS. Pour GNU/Linux, c’est beaucoup de temps et d’énergie à répéter pour chaque distribution et version de distribution… Et l’image docker pour générer la release dans Gitlab est énorme (pour UNE seule version de distro). Trop !

Pour GNU/Linux, je préfère donc proposer des commandes dédiées pour installer les 2 packages Python requis, selon la distribution :

Pour Debian 10 (buster), il faut installer Python 3.7, puis lancer la commande python de la version 3.7 :

python3.7 -m pip install --user https://extras.wxpython.org/wxPython4/extras/linux/gtk3/debian-10/wxPython-4.1.1-cp37-cp37m-linux_x86_64.whl
python3.7 -m pip install --user tikka

Si tout se passe bien, vous avez accès à la commande tikka dans votre $PATH.

Pour mettre à jour Tikka :

python3.7 -m pip install -U --user tikka

J’aimerais avoir des retours sur ces commandes pour différentes distributions, avant de les inclure dans le README du dépôt.

1 « J'aime »

Je suis sur Xubuntu 20.04 (donc python 3.8), je ne peux t’aider pour l’instant… :grimacing:

Oh mais si !
Pour Ubuntu 20.04 et ses dérivés (Xubuntu, Kubuntu, Lubuntu, Mate, etc…), peux-tu essayer ces commandes :

python3 -m pip install --user https://extras.wxpython.org/wxPython4/extras/linux/gtk3/ubuntu-20.04/wxPython-4.1.1-cp38-cp38-linux_x86_64.whl
python3 -m pip install --user tikka

Il faut absolument faire les commandes dans cette ordre ! Je me suis planté dans mon poste, je corrige !

Ok, voici mes premiers retours :


python3 -m pip install --user https://extras.wxpython.org/wxPython4/extras/linux/gtk3/ubuntu-20.04/wxPython-4.1.1-cp38-cp38-linux_x86_64.whl
Collecting wxPython==4.1.1
  Downloading https://extras.wxpython.org/wxPython4/extras/linux/gtk3/ubuntu-20.04/wxPython-4.1.1-cp38-cp38-linux_x86_64.whl (149.9 MB)
     |████████████████████████████████| 149.9 MB 34 kB/s 
Requirement already satisfied: pillow in /usr/lib/python3/dist-packages (from wxPython==4.1.1) (7.0.0)
Requirement already satisfied: six in /usr/lib/python3/dist-packages (from wxPython==4.1.1) (1.14.0)
Requirement already satisfied: numpy; python_version >= "3.0" in /usr/lib/python3/dist-packages (from wxPython==4.1.1) (1.17.4)
Installing collected packages: wxPython
Successfully installed wxPython-4.1.1

Ensuite…

python3 -m pip install --user tikka
Collecting tikka
  Using cached tikka-0.1.4-py3-none-any.whl (530 kB)
Requirement already satisfied: mnemonic<0.20,>=0.19 in ./.local/lib/python3.8/site-packages (from tikka) (0.19)
Requirement already satisfied: tkinterhtml<0.8,>=0.7 in ./.local/lib/python3.8/site-packages (from tikka) (0.7)
Requirement already satisfied: yoyo-migrations<8.0.0,>=7.3.1 in ./.local/lib/python3.8/site-packages (from tikka) (7.3.2)
Requirement already satisfied: duniterpy==1.0.0rc1 in ./.local/lib/python3.8/site-packages (from tikka) (1.0.0rc1)
Requirement already satisfied: markdown<4.0.0,>=3.3.3 in ./.local/lib/python3.8/site-packages (from tikka) (3.3.4)
Requirement already satisfied: wxPython==4.1.1 in ./.local/lib/python3.8/site-packages (from tikka) (4.1.1)
Requirement already satisfied: sqlparse in ./.local/lib/python3.8/site-packages (from yoyo-migrations<8.0.0,>=7.3.1->tikka) (0.4.2)
Requirement already satisfied: tabulate in ./.local/lib/python3.8/site-packages (from yoyo-migrations<8.0.0,>=7.3.1->tikka) (0.8.9)
Requirement already satisfied: pypeg2<3.0.0,>=2.15.2 in /usr/local/lib/python3.8/dist-packages (from duniterpy==1.0.0rc1->tikka) (2.15.2)
Requirement already satisfied: jsonschema<4.0.0,>=3.2.0 in /usr/local/lib/python3.8/dist-packages (from duniterpy==1.0.0rc1->tikka) (3.2.0)
Requirement already satisfied: libnacl<2.0.0,>=1.7.2 in /usr/local/lib/python3.8/dist-packages (from duniterpy==1.0.0rc1->tikka) (1.7.2)
Requirement already satisfied: pyaes<2.0.0,>=1.6.1 in /usr/local/lib/python3.8/dist-packages (from duniterpy==1.0.0rc1->tikka) (1.6.1)
Requirement already satisfied: attrs<22.0.0,>=21.2.0 in ./.local/lib/python3.8/site-packages (from duniterpy==1.0.0rc1->tikka) (21.2.0)
Requirement already satisfied: websocket-client<2.0.0,>=1.1.0 in ./.local/lib/python3.8/site-packages (from duniterpy==1.0.0rc1->tikka) (1.2.1)
Requirement already satisfied: graphql-core<4.0.0,>=3.1.2 in /usr/local/lib/python3.8/dist-packages (from duniterpy==1.0.0rc1->tikka) (3.1.4)
Requirement already satisfied: base58<3.0.0,>=2.1.0 in /usr/local/lib/python3.8/dist-packages (from duniterpy==1.0.0rc1->tikka) (2.1.0)
Requirement already satisfied: pillow in /usr/lib/python3/dist-packages (from wxPython==4.1.1->tikka) (7.0.0)
Requirement already satisfied: numpy; python_version >= "3.0" in /usr/lib/python3/dist-packages (from wxPython==4.1.1->tikka) (1.17.4)
Requirement already satisfied: six in /usr/lib/python3/dist-packages (from wxPython==4.1.1->tikka) (1.14.0)
Requirement already satisfied: pyrsistent>=0.14.0 in /usr/local/lib/python3.8/dist-packages (from jsonschema<4.0.0,>=3.2.0->duniterpy==1.0.0rc1->tikka) (0.17.3)
Requirement already satisfied: setuptools in /usr/lib/python3/dist-packages (from jsonschema<4.0.0,>=3.2.0->duniterpy==1.0.0rc1->tikka) (45.2.0)
Installing collected packages: tikka
Successfully installed tikka-0.1.4

Et enfin :

tikka 
INFO:yoyo.migrations:Applying 00001.init_tables
INFO:yoyo.migrations: - applying step 0
DEBUG:yoyo.migrations: - executing b'create table if not exists accounts(\n        pubkey varchar unique primary key,\n        uid varchar,\n        selected boolean default 1,\n        access_type varchar(8) default null\n);'
INFO:yoyo.migrations:Marking 00001.init_tables applied
DEBUG:root:SELECT migration_hash FROM {0.migration_table_quoted} ORDER by applied_at_utc
INFO:yoyo.migrations:Applying 00001.init_tables
INFO:yoyo.migrations: - applying step 0
DEBUG:yoyo.migrations: - executing b'create table if not exists accounts(\n        pubkey varchar unique primary key,\n        uid varchar,\n        selected boolean default 1,\n        access_type varchar(8) default null\n);'
INFO:yoyo.migrations:Marking 00001.init_tables applied
DEBUG:root:SELECT migration_hash FROM {0.migration_table_quoted} ORDER by applied_at_utc
Traceback (most recent call last):
  File "/home/vincentux/.local/bin/tikka", line 8, in <module>
    sys.exit(main())
  File "/home/vincentux/.local/lib/python3.8/site-packages/tikka/__main__.py", line 39, in main
    application = Application(DATA_PATH)
  File "/home/vincentux/.local/lib/python3.8/site-packages/tikka/domains/application.py", line 45, in __init__
    self.init_i18n()
  File "/home/vincentux/.local/lib/python3.8/site-packages/tikka/domains/application.py", line 58, in init_i18n
    self.translator = gettext.translation(
  File "/usr/lib/python3.8/gettext.py", line 603, in translation
    raise FileNotFoundError(ENOENT,
FileNotFoundError: [Errno 2] No translation file found for domain: 'application'

Voilà, si ça peut t’ êtres utile :grimacing:

1 « J'aime »

Pour une raison inconnue, il manquait les fichiers binaires de traduction dans le package 0.1.4 en ligne (mais qui sont bien dans le package que j’ai en local et que j’ai mis en ligne hier…). J’ai fait un nouveau package 0.1.5 et que j’installe avec succès.

Peux-tu re-tester en mettant Tikka à jour avec :

python3 -m pip install -U --user tikka

Tikka se lance avec cette fenêtre :

Voici les logs

tikka
/home/vincentux/.local/lib/python3.8/site-packages/tikka/locales
DEBUG:root:SELECT migration_hash FROM {0.migration_table_quoted} ORDER by applied_at_utc
DEBUG:root:SELECT migration_hash FROM {0.migration_table_quoted} ORDER by applied_at_utc
11:45:07: Debug: window wxPanel(0x28c4510) lost focus even though it didn't have it
11:45:07: Debug: window wxPanel(0x28c4510) lost focus even though it didn't have it
11:45:07: Debug: window wxPanel(0x28c4510) lost focus even though it didn't have it
11:45:07: Debug: window wxPanel(0x28c4510) lost focus even though it didn't have it
11:45:07: Debug: window wxPanel(0x28c4510) lost focus even though it didn't have it
11:45:07: Debug: window wxPanel(0x28c4510) lost focus even though it didn't have it
11:45:07: Debug: window wxPanel(0x28c4510) lost focus even though it didn't have it
11:45:07: Debug: window wxPanel(0x28c4510) lost focus even though it didn't have it
11:45:07: Debug: window wxPanel(0x28c4510) lost focus even though it didn't have it
11:45:12: Debug: window wxPanel(0x28c4510) lost focus even though it didn't have it
11:45:12: Debug: window wxPanel(0x28c4510) lost focus even though it didn't have it
11:45:12: Debug: window wxPanel(0x28c4510) lost focus even though it didn't have it
...

(tikka:2990): Gtk-CRITICAL **: 11:45:58.439: gtk_widget_event: assertion 'WIDGET_REALIZED_FOR_EVENT (widget, event)' failed
11:46:06: Debug: window wxPanel(0x28c4510) lost focus even though it didn't have it
11:46:06: Debug: window wxPanel(0x28c4510) lost focus even though it didn't have it
11:46:06: Debug: window wxPanel(0x28c4510) lost focus even though it didn't have it
11:46:06: Debug: window wxPanel(0x28c4510) lost focus even though it didn't have it
11:46:06: Debug: window wxPanel(0x28c4510) lost focus even though it didn't have it
11:46:06: Debug: window wxPanel(0x28c4510) lost focus even though it didn't have it
11:46:06: Debug: window wxPanel(0x28c4510) lost focus even though it didn't have it
11:46:06: Debug: window wxPanel(0x28c4510) lost focus even though it didn't have it
11:46:06: Debug: window wxPanel(0x28c4510) lost focus even though it didn't have it
11:46:08: Debug: window wxPanel(0x28c4510) lost focus even though it didn't have it

ça fonctionne donc ! Qu’est-ce qui bloque ? Ne peux-tu aller dans les menus et voir la licence, le « à propos », la configuration ou créer un compte ? Attention, il s’agit d’un prototype avec pas grand chose pour l’instant. Mais si tu créer un compte tu va avoir un onglet en plus.

1 « J'aime »

Salut !
Je ne suis pas codeur, mais je bidouille suffisamment pour installer Gitlab Runner si tu veux sur MacOS.
Amicalement, Francis

Super! Merci à toi. Je vais de ce pas créer un sujet dédié.

1 « J'aime »

pour debian c’est « python3.7 » et pas 37…

à la fin de l’install il me dit ça :

  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
  WARNING: The scripts helpviewer, img2png, img2py, img2xpm, pycrust, pyshell, pyslices, pyslicesshell, pywxrc, wxdemo, wxdocs and wxget are installed in '/home/attilax/.local/bin' which is not on PATH.
  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
Successfully installed numpy-1.21.4 pillow-8.4.0 six-1.16.0 wxPython-4.1.1
WARNING: You are using pip version 20.1.1; however, version 21.3.1 is available.
You should consider upgrading via the '/usr/local/bin/python3.7 -m pip install --upgrade pip' command.

Je lance donc l’app depuis ./local/bin/

J’ajoute un compte existant. Je clique droit sur le verrou et je déverrouille, j’obtiens :

Pour l’instant je ne vois pas quoi faire d’autre…

J’ai essayé de charger un trousseau créé via cesium mais ça marche pas.

2 « J'aime »

C’est parfait , ça fonctionne chez toi! Il n’y a rien d’autres à faire pour l’instant, Tikka est un embryon pour l’instant. Je profite de l’accalmie de développement pour m’assurer que Tikka s’installe facilement. C’est pas la peine de faire un logiciel dans une techno qui s’avère être un enfer à installer. :wink:

1 « J'aime »

J’ai déverrouillé mais mon solde reste à 0

Oui, c’est normal, Tikka ne fait rien pour l’instant (pas de connexion au réseau). On peut juste créer des trousseaux et les verrouiller/déverrouiller et c’est tout.
Mais bonne nouvelle si tu as réussi à l’installer sur ton Linux ! Merci pour ton retour.

2 « J'aime »