6 Backport del codice sorgente #
SUSE fa ampio uso del backporting, ad esempio per la migrazione delle attuali correzioni e funzioni software nei pacchetti SUSE Linux Enterprise rilasciati. Le informazioni contenute in questo capitolo spiegano perché il confronto tra i numeri di versione per giudicare le funzionalità e la sicurezza dei pacchetti software di SUSE Linux Enterprise può essere fuorviante. Nel capitolo vengono spiegate inoltre le modalità con cui SUSE mantiene sicuro e aggiornato il software del sistema preservando la compatibilità del software applicativo dell'utente oltre che dei prodotti SUSE Linux Enterprise. Sarà inoltre possibile apprendere come verificare quali problemi relativi alla sicurezza pubblica riguardano effettivamente il software del sistema SUSE Linux Enterprise e lo stato attuale del software in uso.
6.1 Motivi per eseguire il backporting #
Gli sviluppatori upstream sono interessati soprattutto all'avanzamento del software che sviluppano. Spesso, oltre a correggere i bug, introducono nuove funzioni non ancora testate adeguatamente, che possono determinare l'introduzione di nuovi bug.
Per gli sviluppatori di distribuzione, è importante saper distinguere tra:
correzioni di bug che incidono limitatamente sulla funzionalità e
modifiche che potrebbero compromettere la funzionalità esistente.
In genere, gli sviluppatori della distribuzione non seguono tutte le modifiche upstream dopo il rilascio di un pacchetto. Di solito rimangono fedeli alla versione upstream rilasciata inizialmente e creano patch basate sulle modifiche upstream per correggere i bug. Questa pratica è nota come backporting.
Di norma, gli sviluppatori di distribuzione si limitano a introdurre una versione più recente del software in due casi specifici:
quando l'entità delle modifiche tra i pacchetti e le versioni upstream è tale per cui il backporting non è più fattibile oppure
per il software che essenzialmente agisce in modo negativo, come il software antimalware.
In SUSE viene fatto ampio uso del backporting, nel tentativo di trovare un giusto equilibrio tra i numerosi problemi correlati al software aziendale, i più importanti dei quali sono:
L'ottenimento di interfacce (API) stabili sulle quali i fornitori di software possono fare affidamento quando creano prodotti da utilizzare con i prodotti per aziende SUSE.
La certezza che i pacchetti utilizzati nella release dei prodotti per aziende SUSE siano di qualità superiore e che siano stati testati totalmente sia singolarmente sia parzialmente, come parte di un prodotto completo.
La preservazione di varie certificazioni dei prodotti per aziende SUSE ottenute da altri fornitori, come le certificazioni per i prodotti Oracle o SAP.
Consentire agli sviluppatori SUSE di concentrarsi sulla realizzazione della versione successiva del prodotto piuttosto che disperdere le loro energie su più release.
Mantenere una visione chiara di ciò che è in una particolare release aziendale, in modo che il nostro supporto sia in grado di fornire informazioni accurate e tempestive in merito.
6.2 Motivi contrari ai backport #
Una regola generale delle policy prevede che nessuna nuova versione upstream di un pacchetto venga introdotta nei nostri prodotti per aziende. Si tratta tuttavia di una regola non assoluta. Per alcuni tipi di pacchetti, in particolare i software antivirus, la sicurezza ha un peso maggiore rispetto all'approccio conservativo, che dal punto di vista del controllo della qualità è preferibile. Per i pacchetti di tale classe, occasionalmente le versioni più recenti vengono introdotte in una versione rilasciata di una linea di prodotti per aziende.
Talvolta anche per altri tipi di pacchetti la scelta volge sull'introduzione di una nuova versione piuttosto che su un backport, soprattutto quando quest'ultimo non è fattibile dal punto di vista economico oppure nel caso in cui i motivi tecnici sono di tale entità per cui è preferibile realizzare una versione nuova.
6.3 Implicazioni dei backport per l'interpretazione dei numeri di versione #
A causa del backporting, non è possibile confrontare semplicemente i numeri di versione per determinare se un pacchetto SUSE contiene una correzione a un determinato problema o se è stata aggiunta una particolare funzione. Con il backporting, la parte upstream del numero di versione di un pacchetto SUSE indica semplicemente la versione upstream sulla quale si base il pacchetto SUSE. Può contenere correzioni di bug e funzioni non presenti nella release upstream corrispondente, di cui però è stato effettuato il backporting nel pacchetto SUSE.
Un'area particolare in cui tale valore limitato dei numeri di versione quando è coinvolto il backporting può causare problemi con gli strumenti di scansione della sicurezza. Alcuni strumenti di scansione delle vulnerabilità della sicurezza (o particolari prove all'interno di tali strumenti) funzionano solamente sulle informazioni della versione. Questi strumenti e test sono pertanto inclini a generare «falsi positivi» (quando una parte del software viene erroneamente identificata come vulnerabile) quando sono coinvolti i backport. Quando si valutano i rapporti con strumenti di scansione della sicurezza, verificare sempre se una voce si basa su un numero di versione o su un test della vulnerabilità effettivo.
6.4 Verifica dei bug corretti e delle funzioni sottoposte a backport #
Le informazioni relative a funzioni e correzioni dei bug sottoposte a backporting sono memorizzate in varie ubicazioni:
Il log delle modifiche del pacchetto:
tux >
rpm -q --changelog name-of-installed-packagetux >
rpm -qp --changelog packagefile.rpmOutput in cui è documentata in breve la cronologia delle modifiche del pacchetto.
Il log delle modifiche del pacchetto può contenere voci come
bsc#1234
(«Bugzilla Suse.Com») che fa riferimento ai bug nel sistema di rilevamento Bugzilla di SUSE o collega ad altri sistemi di bugtracking. Date le policy sulla riservatezza, non tutte le informazioni di questo tipo sono accessibili.Un pacchetto può contenere un file
/usr/share/doc/PACKAGENAME/README.SUSE
nel quale sono incluse informazioni generali specifiche del pacchetto SUSE.Il pacchetto di origine RPM contiene le patch applicate durante la creazione di normali RPM binari come file separati che è possibile interpretare se si ha familiarità con la lettura del codice sorgente. Vedere Section 6.1.3.5, “Installing or Downloading Source Packages” per l'installazione delle origini del software SUSE Linux Enterprise. Vedere Section 6.2.5, “Installing and Compiling Source Packages” per la creazione di pacchetti su SUSE Linux Enterprise. Vedere il manuale Maximum RPM (in lingua inglese) per dettagli sulle build dei pacchetti software per SUSE Linux Enterprise.
Per le correzioni per bug e sicurezza, consultare Annunci sulla sicurezza SUSE. Spesso si riferiscono ai bug mediante nomi standardizzati come
CAN-2005-2495
che vengono mantenuti dal progetto Vulnerabilità ed esposizioni comuni (CVE, Common Vulnerabilities and Exposures).