Installazione e compilazione dei moduli OpenVINO per Audacity su Fedora 39

Ciao a tutti, stavo dando un’occhiata a questa novità di Audacity https://github.com/intel/openvino-plugins-ai-audacity/blob/main/doc/build_doc/linux/README.md che permette di installare il modulo OpenVINO che mi sembra molto utile, ma mi sono un po’ bloccato nella compilazione e non riesco a venirne a capo.

Stavo seguendo passo passo le istruzioni (che sono per Ubuntu ma le ho adattate per Fedora), ma mi sono un po’ bloccato per via di un errore che continua a venir fuori in fase di compilazione.

In particolare dopo aver installato le dipendenze (basandomi sul toolkit di RedHat) e dopo aver avuto questo warning:

[setupvars.sh] WARNING: Unsupported Python version 3.12. Please install one of Python 3.8 - 3.11 (64-bit) from https://www.python.org/downloads/
[setupvars.sh] OpenVINO environment initialized

procede comunque tutto liscio fino alla compilazione del componente OpenVINO Stable-Diffusion CPP. Infatti dopo il cmake:

cmake ../stablediffusion-pipelines-cpp

che comunque non restituisce errori, in fase di compilazione dopo il comando

> make -j 8

ottengo questo:

make[2]: *** [stable_diffusion_ov/CMakeFiles/stable_diffusion_ov.dir/build.make:76: stable_diffusion_ov/CMakeFiles/stable_diffusion_ov.dir/tokenizers/special_tokens_mixin.cpp.o] Error 1
make[2]: *** Attesa per i processi non terminati....
^Cmake[2]: *** [stable_diffusion_ov/CMakeFiles/stable_diffusion_ov.dir/build.make:90: stable_diffusion_ov/CMakeFiles/stable_diffusion_ov.dir/tokenizers/pretrained_tokenizer_base.cpp.o] Interruzione
make[2]: *** [stable_diffusion_ov/CMakeFiles/stable_diffusion_ov.dir/build.make:118: stable_diffusion_ov/CMakeFiles/stable_diffusion_ov.dir/tokenizers/clip_tokenizer.cpp.o] Interruzione
make[2]: *** [stable_diffusion_ov/CMakeFiles/stable_diffusion_ov.dir/build.make:104: stable_diffusion_ov/CMakeFiles/stable_diffusion_ov.dir/tokenizers/pretrained_tokenizer.cpp.o] Interruzione
make[1]: *** [CMakeFiles/Makefile2:132: stable_diffusion_ov/CMakeFiles/stable_diffusion_ov.dir/all] Interruzione
make: *** [Makefile:136: all] Interruzione

non riesco a capire dove sbaglio, qualcun altro ci ha già provato?

Hai pensato di creare il tutto come pacchetto RPM?

Ci ho pensato ma non penso di esserne in grado, non ho mai creato pacchetti.

L’idea è cercare di circonferenziare la compilazione e capire anche gli errori dove stanno. Se riesco prossima settimana ci do un occhio più approfondito!

1 Mi Piace

Stavo studiando un po’ la faccenda. C’è da ricompilare anche audacity accidenti…
Alla fine sei riuscito a fare comunque?

No, purtroppo non ci ho riprovato anche perché ho avuto difficoltà anche nel ricompilare Audacity. Capisco che è un po’ ostica come cosa.

Caro PietroCiuffrida, forse non l’hai notato, ma c’è l’errore fin dall’inizio! CMake è un sistema per la compilazione di progetti. La linea di comando con CMake è sempre:
cmake CMakeLists.txt
make
Seguito da un eventuale:
sudo make install/uninstall
Se fosse stato un progetto gestito con QMake avresti fatto:
qmake nome_del_progetto.pro
make
Tutto qui!

Ciao, perdonami ma non ho capito cosa intendi. La sintassi è proprio quella che descrivi tu in realtà e cioè nello specifico:

cmake …/stablediffusion-pipelines-cpp
make -j 8

tant’è che l’errore me lo restituisce make, non cmake

Scusa, ma conosci la semantica del comando cmake? CMake serve per la gestione e la compilazione dei progetti, lo uso abitualmente. Se vuoi compilare un file c o c++ usi gcc! Se tu dai il comando “man cmake”, nella pagina iniziale le sintassi accettate sono:

CMAKE(1) CMake CMAKE(1)

NAME
cmake - CMake Command-Line Reference

SYNOPSIS
Generate a Project Buildsystem
cmake [] -B [-S ]
cmake [] <path-to-source | path-to-existing-build>

      Build a Project
       cmake --build <dir> [<options>] [-- <build-tool-options>]

      Install a Project
       cmake --install <dir> [<options>]

      Open a Project
       cmake --open <dir>

      Run a Script
       cmake [-D <var>=<value>]... -P <cmake-script-file>

      Run a Command-Line Tool
       cmake -E <command> [<options>]

      Run the Find-Package Tool
       cmake --find-package [<options>]

      Run a Workflow Preset
       cmake --workflow [<options>]

      View Help
       cmake --help[-<topic>]

Dimmi se sbaglio!

@d68qdq8dq no, non so dirti se sbagli proprio perchè non conosco la semantica del comando cmake, sia perché non è di mio utilizzo quotidiano e sia perchè probabilmente non hai letto con attenzione quello che ho scritto inizialmente, ossia che sto seguendo queste istruzioni passo passo https://github.com/intel/openvino-plugins-ai-audacity/blob/main/doc/build_doc/linux/README.md e non riesco ad andare avanti, bloccandomi esattamente dove ho indicato. Tutto qui.

Fammi provare a compilare quel programma, git clone è semplice!

1 Mi Piace

PietroCiuffreda, ho scaricato con git clone audacity e quell’estensione e le rogne si vedono lontano un miglio… Io uso abitualmente KDevelop come ambiente di sviluppo e visto che supporta CMake ho voluto vedere come si comportava con Audacity. Prima mi ha segnalato che mancavano i files per lo sviluppo legato ad una libreria e questo l’ho risolto subito, il bello è venuto dopo… Ha riconosciuto la piattaforma e l’architettura ma poi si è letteralmente incasinato! Ha iniziato a scaricare tutta una serie di librerie e non una, ma più volte entrando in un circolo vizioso! Quelli che gestiscono quel programma conoscono il comando find_package in CMake? Ti faccio un esempio: il programma fa uso di wxWidgets ed esiste il necessario per includerle in un progetto usando find_package. Peccato che non lo usi… Vediamo se riesco a risolvere il problema…

1 Mi Piace

@d68qdq8dq grazie di cuore, avevo il sospetto che qualcosa non quadrasse, sarei curioso di sapere se qualcuno ci è riuscito veramente a far tutto seguendo quelle istruzioni.

Guarda, PietroCiuffreda, che ho visto cose ben peggiori! Per farti un esempio mi sono scaricato i sorgenti di ben tre ambienti BASIC sotto Linux oramai passati nel dimenticatoio, HBasic, KBasic e Q7Basic, e ti posso dire che di errori nella programmazione in quei tre ne sono pieni, detto da uno che quando si è avvicinato al linguaggio C sotto un Sinclair QL ne ha fatto di sbagli! Una soluzione sarebbe partire da CMakeLists,txt nella radice del progetto, ripulirlo dell’uso di conan per scaricare quelle librerie che usa, usare find_package per trovarle nel sistema su cui viene compilato, incrociare le dita nei test per la compilazione, includere solo alla fine quell’estensione e poi rispedire il tutto ai legittimi proprietari, siamo sotto licenze GPL2 e 3, dobbiamo farlo… Se vuoi ci tento…

1 Mi Piace

Se non è un problema per te @d68qdq8dq sarebbe davvero fantastico, chiaramente sempre quando riesci.

Ho dato un primo sguardo ai files CMakeLists.txt e dovrò lavorarci, ma nulla di insuperabile. Ammesso di riuscirci non so come la prenderanno quelli di Audacity… Quello che ne uscirà di quei files sarà un testo molto più striminzito, mantenendo però la sostanza. D’accordo, lo faccio, ma poi qualcuno oltre al sottoscritto dovrà testarlo sulla sua piattaforma. Iniziamo…

Riassunto del lavoro svolto fino ad oggi: è un lavoraccio! Non so come siano riusciti a compilarlo sotto Fedora… Sembra che lo sviluppino sotto Arch Linux o Debian… Son dovuto ritornare ai CMakeLists.txt originali e vedere che scarica delle librerie già presenti nel sistema… Lasciamo stare, vediamo alla fine di compilare quell’estensione…

1 Mi Piace

Alla fine ha scaricato tutto il necessario, ma la compilazione di audacity è fallita per la mancanza di un file! Vediamo di risolvere quel problema! Poi l’estensione…

1 Mi Piace

Ho scaricato l’ultima versione usando Git e ancora una volta la compilazione di Audacity è fallita!