Mastodon

In breve

Come regalo per il nuovo anno, è ora possibile compilare in modo semplice Kdenlive su Windows, Mac e, naturalmente, su Linux & BSD, grazie a KDE Craft package manager che è ingrado di recuperare tutte le dipendenze aggiornate. E’ sufficiente scaricare le nostre ultime build… o per modifiche e compilazione, segui il tipico processo in Craft:

  • E’ necessario avere installato l’interprete per python 3;
  • Scarica e esegui lo  script d’installazione;
  • Imposta il Source shell environment su: $CraftRoot/craft/craftenv.sh per Unix/Mac, o $CraftRoot/craft/craftenv.ps1 su Windows PowerShell, rimpiazzando $CraftRoot con la locazione dove hai installato Craft;
  • Recupera le dipendenze, il codice sorgente e compila in un solo comando: craft kdenlive
  • Goditi Kdenlive!

Crafting Kdenlive on Windows

Il retroterra

 

Prima cross-build tramite MXE

Il “Porting” di kdenlive su altre piattaforme è in corso da anni: la vecchia versione basata su Qt4 era su MacPorts, e abbiamo iniziato a dare un’occhiata alla versione per Windows con il nostro studente al GSoC nella primavera del 2016. Avevamo previsto che non avremmo dovuto fare molte modifiche al codice siccome kdenlive si basa sulla combinazione delle versioni di qt5 / kf5 e mlt portatili che sono già incorporate in Shotcut, un programma di montaggio cross-platform.

A quell’epoca, KDE non aveva ancora un server per la compilazione per Windows e Mac, e io non avevo una macchina con Windows a disposizione. Ho quindi pensato che sarebbe stato molto più efficiente lavorare con Linux. Inoltre, nelle prime versioni di Craft, mancavano le librerie multimediali (codec audio-video e effetti), mentre MXE, un sistema per la compilazione cross-platform, ne aveva già pronte una certa quantità. Mi piaceva l’uso che MXE fa di “GNU Make” per risolverei problemi legati alle dipendenze durante la compilazione. Il suo sistema automatico di aggiornamento delle versioni e la semplice opzione per la sovrascrittura delle opzioni di compilazione… Così, usammo questo approccio e compilammo tutti gli stack fino all’applicazione finale!

La più grande difficoltà è stata l’implementazione: la compilazione necessità di molti eseguibili (kdenlive, melt usato per il rendering, ffmpeg per la transcodifica, dbus-daemon per le notifiche…), librerie condivise, plugin (qt, mlt, frei0r…), file di dati… quindi non funzionava in modo automatico! Di conseguenza, trovare un layout per soddisfare tutti questi requisiti, richiedeva diverse prove e modifiche non consentendo, in questa fase, test diretti durante lo sviluppo e la ricompilazione.

Alla fine, tramite questo lavoro abbiamo potuto distribuire la versione per Windows, pubblicata nel 2016 come anteprima “alpha”, che ha trovato subito molti utenti nonostante le lacune… La situazione è poi rimasta tale per più di un anno, durante il quale gli aggiornamenti non erano relativi alla correzione di specifici problemi per quella piattaforma.

 

Sviluppo su Windows tramite MSYS2

Avevamo un problema veramente fastidioso: la funzione base di pausa/riproduzione era assolutamente  inaffidabile! (come si poteva convivere con una cosa simile?)
Sembrava un problema generato dalle specifiche del multi-threading di Windows, ma per risolverlo era necessario un ambiente per il debug. Gli utenti di Windows hanno offerto il loro aiuto ma si sono trovati immediatamente bloccati dal processo di compilazione “foreign”, esattamente come me.

A un certo punto ho dovuto viaggiare per lavoro con un portatile Windows: per sentirmi a casa ho installato un ambiente  MSYS2, con Bash e Pacman. Ho fatto il porting dello script di compilazione della nostra Appimage per Linux e sono stato in grado di compilare Kdenlive e tutte le sue dipendenze direttamente in Windows. Poi, dopo alcuni tentativi, il problema di pausa/riproduzione è stato risolto!

 

Dovevo iniziare da qui: Craft!

Il problema successivo: alla chiusura di Kdenlvie il processo rimaneva attivo, bloccando i file e occupando memoria. Questo sembrava un problema conosciuto dalla squadra di KDE-Windows, dovuto a un loop nel threading in  KF5 / Qt-DBus / Windows. La correzione era disponibile in Craft, insieme ad altre patch e opzioni speciali di compilazione… Invece d’importare tutto e ricompilare a ogni aggiornamento, era più che tempo di usare il lavoro di alcuni amici e adootare Craft e beneficiare di aggiornamenti e correzioni, pre-built cache, compilatori automatici… e la cosa più imporante, avere nuovi amici da incontrare all’Akademy o al Randa Meetings.

Ho dovuto installare una PowerShell recente (senza privilegi d’amministratore), importare “pochi” pacchetti con le librerie, e scrivere una patch per MLT per permettere a Kdenlive di girare senza  una fase di deployment. Finalmente, tutti quelli che stavano aspettando semplicemente di compilare ed eseguire la versione per Windows, lo possono fare seguendo i passaggi descritti sopra.

Craft ha anche integrata la creazione di un installatore per l’applicazione, di conoseguenza “craft –package kdenlive” produce un file di tipo  NSIS exe compatto, al quale gli utenti Windows  sono molto più abituati piuttosto che agli archivi grezzi precedentemente disponibili.

Ultimo, ma non per importanza, Craft funziona anche su Linux/*BSD… e MacOS! Nonostante questo, la compilazione avviene con successo ma il programma non si avvia, a causa di un errore di avvio di DBus. che non ho ancora avuto modo di risolvere (ho avuto in prestito un Mac solo per qualche ora). Ma credo che siamo veramente vicini alla possibilità di nutrire i mangiatori di DMG.

 

Conclusione

Se vuoi installare un ambiente per Kdenlive con tutte le librerie aggiornate in un angolo del tuo sistema, non avrai più problemi qualunque OS tu abbia scelto!

Benvenuto fra gli amici di Craft. 🙂

Traduzione dell’articolo di