MGSM0054 19/03/2008 Files media_info/*.xml.lzma in punta di Editor
i Mandriviani dopo anni di uso dei files hdlist.cz si sono accorti che stavano crescendo a dismisura rendendo le operazioni di aggiornamento delle macchine un vero supplizio, ad oggi per esempio l'hdlist.cz di Cooker contrib è grosso quasi 66MB, una mostruosità.
Pensa che ti ripensa è stata scovata la soluzione, che è la seguente:
a) File indice base il tradizionale synthesis.hdlist.cz grande poco più di 1MB changelog.xml.lzma questo file contiene l'elenco delle modifiche apportate ai vari pacchetti
c) files.xml.lzma questo file contiene l'elenco di tutti i files presenti nei vari pacchetti
d) info.xml.lzma questo file contiene le info generali dei vari pacchetti
N.B. questa soluzione è disponibile solo a partire dalla Mandriva Spring 2008.1
Questi 4 files occupano in totale 10MB quindi oltre 6 volte meno di hdlist.cz.
I files *.xml.lzma sono appunto dei file xml molto semplici compressi nello speciale formato lzma, questo è molto utile per risparmiare spazio ma rende umanamente illeggibili questi files che invece possono tornare molto utili.
Lo script presentato in seguito non fa altro che scaricare tutti i files .xml.lzma di main, Contrib e Non-Free e convertirli in formato xml con il comando lzcat ed il tutto viene salvato nella cartella ~/cookerinfo.
Dopo la conversione i files fono leggibili da qualsiasi edito ed alcuni fanno pure la formattazione automatica.
Ecco il semplicissimo script.
<br />#!/bin/sh<br /><br />#a<br />#indirizzo del mirror FTP <br />BASE=ftp://ftp.free.fr/mirrors/ftp.mandriva.com/MandrivaLinux/devel/cooker<br /><br />#b<br />case "$1" in<br /> 1 ) CPU="i586"; ;;<br /> 2 ) CPU="x86_64"; ;;<br /> * ) echo "DATI ERRATI ( 1 = i586 2 = x86_64 )"; exit 1 ;;<br />esac<br /><br />#c<br />cd ~<br />mkdir cookerinfo<br />cd cookerinfo<br /><br />#d<br />wget $BASE/$CPU/media/main/release/media_info/changelog.xml.lzma<br />lzcat changelog.xml.lzma > main-changelog.txt<br />rm changelog.xml.lzma<br />wget $BASE/$CPU/media/main/release/media_info/files.xml.lzma<br />lzcat files.xml.lzma > main-files.txt<br />rm files.xml.lzma<br />wget $BASE/$CPU/media/main/release/media_info/info.xml.lzma<br />lzcat info.xml.lzma > main-info.txt<br />rm info.xml.lzma<br /><br /><br />#e<br />wget $BASE/$CPU/media/contrib/release/media_info/changelog.xml.lzma<br />lzcat changelog.xml.lzma > contrib-changelog.txt<br />rm changelog.xml.lzma<br />wget $BASE/$CPU/media/contrib/release/media_info/files.xml.lzma<br />lzcat files.xml.lzma > contrib-files.txt<br />rm files.xml.lzma<br />wget $BASE/$CPU/media/contrib/release/media_info/info.xml.lzma<br />lzcat info.xml.lzma > contrib-info.txt<br />rm info.xml.lzma<br /><br /><br />#f<br />wget $BASE/$CPU/media/non-free/release/media_info/changelog.xml.lzma<br />lzcat changelog.xml.lzma > non-free-changelog.txt<br />rm changelog.xml.lzma<br />wget $BASE/$CPU/media/non-free/release/media_info/files.xml.lzma<br />lzcat files.xml.lzma > non-free-files.txt<br />rm files.xml.lzma<br />wget $BASE/$CPU/media/non-free/release/media_info/info.xml.lzma<br />lzcat info.xml.lzma > non-free-info.txt<br />rm info.xml.lzma<br />
In #a si assegna l'indirizzo ftp del mirror alla variabile BASE
In #b tramite la variabile di input $1 si seleziona il tipo di processore desiderato
In #c si crea la cartella che conterrà le informazioni
In #d si scaricano i files xml.lzma di Main, li si converte in xml e poi li si cancella.
In #e si scaricano i files xml.lzma di Contrib, li si converte in xml e poi li si cancella.
In #f si scaricano i files xml.lzma di Non-Free, li si converte in xml e poi li si cancella.
Come detto prima i files sono in formato XML ma comunque facilmente interpretabili.
Ecco un esempio di Changelog<br /><changelogs fn="adp94xx-1.3.11424-3mdv2007.1.noarch"><br /><log time="1173175200"><br /><log_name>Gwenole Beauchesne <> 1.3.11424-3mdv</log_name><br /><log_text>- sort pci ids</log_text><br /></log><log time="1164621600"><br /><log_name>Gwenole Beauchesne <> 1.3.11424-2mdv</log_name><br /><log_text>- fix pcitable entries<br />- fix pcitable updates<br />- fix includes for ioctl32 compat</log_text><br /></log><log time="1158055200"><br /><log_name>Gwenole Beauchesne <> 1.3.11424-1mdv2007.0</log_name><br /><log_text>- First Mandriva Linux package</log_text><br /></log></changelogs><br />
Ecco un esempio di Files<br /><files fn="adp94xx-1.3.11424-3mdv2007.1.noarch"><br />/usr/share/ldetect-lst/pcitable.d/95_adaptec_adp94xx.lst<br /></files><files fn="ueagle-firmware-1.1-2mdv2008.0.noarch"><br />/lib/firmware/ueagle-atm<br />/lib/firmware/ueagle-atm/930-fpga.bin<br />/lib/firmware/ueagle-atm/CMV4p.bin.v2<br />/lib/firmware/ueagle-atm/CMV9i.bin<br />/lib/firmware/ueagle-atm/CMV9p.bin<br />/lib/firmware/ueagle-atm/CMVei.bin<br />/lib/firmware/ueagle-atm/CMVeiWO.bin<br />/lib/firmware/ueagle-atm/CMVep.bin<br />/lib/firmware/ueagle-atm/CMVepES.bin<br />/lib/firmware/ueagle-atm/CMVepES03.bin<br />/lib/firmware/ueagle-atm/CMVepFR.bin<br />/lib/firmware/ueagle-atm/CMVepFR04.bin<br />/lib/firmware/ueagle-atm/CMVepFR10.bin<br />/lib/firmware/ueagle-atm/CMVepIT.bin<br />/lib/firmware/ueagle-atm/CMVepWO.bin<br />/lib/firmware/ueagle-atm/DSP4p.bin<br />/lib/firmware/ueagle-atm/DSP9i.bin<br />/lib/firmware/ueagle-atm/DSP9p.bin<br />/lib/firmware/ueagle-atm/DSPei.bin<br />/lib/firmware/ueagle-atm/DSPep.bin<br />/lib/firmware/ueagle-atm/adi930.fw<br />/lib/firmware/ueagle-atm/eagleI.fw<br />/lib/firmware/ueagle-atm/eagleII.fw<br />/lib/firmware/ueagle-atm/eagleIII.fw<br />/lib/firmware/ueagle-atm/eagleIV.fw<br /></files><br />
Ecco un esempio di Info<br /><info fn="koffice-kivio-1.6.3-15mdv2008.1.i586"<br /> sourcerpm='koffice-1.6.3-15mdv2008.1.src.rpm'<br /> url='http://www.koffice.org/'<br /> license='GPLv2+'><br />Kivio is a diagramme for kde project.<br /></info><br />
Ciao Ciao Moreno