Movable Type 5 e Perl 5

Movable Type 5Movable Type 5 OS, il CMS per piattaforme blog, è una versione open source inclusa in alcuni piani di hosting e installabile attraverso Softacuolous https://www.softaculous.com, una software and IT services company indiana. Si tratta di una versione ormai obsoleta, non più supportata dalla casa madre, ma a mio giudizio ancora valida. Tuttavia la versione 5 ha alcune incompatibilità con le ultime versioni di Perl, il linguaggio di script con il quale è stato scritto.

Per esempio la sezione Tags  -> Manage del menu a sinistra, nel mio caso, dà un errore di caricamento oggetti, rendendo impossibile gestire i tags.

Per risolvere il problema e poter continuare a usare MT5 OS ci sono 3 strade:

  1. Fare il downgrade della versione Perl, cosa poco consigliabile e praticabile per motivi di sicurezza del software Perl.
  2. Fare l'upgrade di Movable Type 5 alla versione 7, ma così si rischia di perdere le configurazioni e le personalizzazioni fatte con la vecchia versione, oltre a dover pagare una nuova licenza.
  3. Andare a vedere nel codice Perl di MT 5 cosa genera il problema e provare a risolverlo con una patch.

Io ho scelto la terza soluzione e ho scoperto che il problema dell'incopatibilità sta in alcune librerie della sotto-cartella ObjectDriver della cartella MT. In particolare i file SQL.PM della libreria package MT::ObjectDriver::SQL,  il file mysql.pm della libreria package MT::ObjectDriver::SQL::mysql,  il file mysql.pm della libreria package MT::ObjectDriver::Driver::DBD::mysql, il file Legacy.pm della libreria package MT::ObjectDriver::Driver::DBD::Legacy, sono incompatibili con le ultime versioni di Perl. La patch consiste nel sostituire i vecchi file citati con i file della libreria Object Driver aggiornati della versione 7 di Movable Type scaricabili dal repository GitHub di Movable Type all'indirizzo https://github.com/movabletype/movabletype/releases/tag/mt7.1.2.

In questo modo, nel mio caso, il menu Tags -> Manage torna ad essere disponibile nella versione 5 di Movable Type.