
Chi apprezza il software open source conosce già GNOME Papers, il moderno visualizzatore di documenti sviluppato per il desktop GNOME approdato di default nella versione 49 del famoso DE. Il progetto è progettato per offrire un’interfaccia semplice e moderna, supportando numerosi formati come PDF, archivi di fumetti, DjVu e immagini TIFF.
Ora il software compie un passo importante grazie a un porting nativo per Windows. Il progetto deriva direttamente dal repository ufficiale di GNOME ed è stato adattato per funzionare sul sistema operativo Microsoft senza ricorrere a livelli di compatibilità o ambienti Linux. L’obiettivo è mantenere la stessa esperienza d’uso, intervenendo soltanto sugli elementi indispensabili per garantire la compatibilità con la piattaforma Windows.
Un visualizzatore completo adattato all’ambiente Windows
GNOME Papers continua a offrire tutte le caratteristiche principali che hanno reso popolare il progetto nel mondo Linux. L’applicazione permette di visualizzare documenti PDF, archivi di fumetti nei formati CBR e simili, file DjVu e immagini TIFF attraverso un’interfaccia moderna e intuitiva.
Per rendere possibile il funzionamento nativo su Windows, gli sviluppatori hanno introdotto un Platform Abstraction Layer (PAL), un livello di astrazione che separa le componenti dipendenti dal sistema operativo dal resto dell’applicazione. Questo approccio consente di sostituire le funzioni specifiche di Linux dedicate alla gestione delle finestre e del rendering con implementazioni ottimizzate per Windows, senza modificare la logica principale del programma.
L’intervento consente inoltre di mantenere una base di codice più ordinata, facilitando gli aggiornamenti provenienti dal progetto ufficiale.
Le principali modifiche tecniche del porting
Il lavoro di adattamento ha richiesto numerosi interventi mirati sulle parti del codice che dipendevano esclusivamente dalle API Unix. Le operazioni relative ai descrittori di file sono state racchiuse in condizioni specifiche per Windows, mentre sono stati aggiunti gli header necessari per utilizzare le equivalenti funzioni disponibili sulla piattaforma Microsoft.
Tra le modifiche più significative rientrano anche la disattivazione di alcune funzionalità strettamente legate al desktop GNOME, come l’integrazione con D-Bus, Secret Service e le estensioni dedicate al file manager Nautilus, elementi che non trovano un equivalente diretto nell’ambiente Windows.
Anche il sistema di compilazione è stato rivisto per migliorare la portabilità. Alcuni comandi Unix utilizzati dagli script Meson sono stati sostituiti con script Python compatibili con il Prompt dei comandi e PowerShell, permettendo una compilazione più semplice tramite l’ambiente MSYS2 e il toolchain UCRT64.

Infine è stata aggiornata la gestione dell’avvio dei processi. Il precedente metodo basato su funzioni disponibili soltanto nei sistemi Unix è stato sostituito da un’implementazione realizzata con std::process::Command del linguaggio Rust, garantendo così un comportamento pienamente compatibile con Windows e una maggiore affidabilità durante l’esecuzione dell’applicazione.
Ringrazio Sebastiano F. per la segnalazione.