Pagina 1 di 7

Please Add a FileList to your Slackbuild's repositories

Inviato: ven 18 mag 2012, 19:49
da ZeroUno
Ciao.

Sto seriamente prendendo in considerazione l'idea di sviluppare uno slackbuild search da integrare al già presente Packages & FileList Finder.

Non è un lavoro semplice e ho bisogno della vostra collaborazione così come l'ho chiesta quando ho sviluppato il packages finder.
Il grande scoglio su cui mi sto scontrando è lo stesso dell'altra volta.
Tanti repository di slackbuild non possiedono un indice. Al momento per indicizzarli l'unica soluzione è scaricare l'intero repository! Mi sembra un lavoro alquanto inutile!!
Per tutti i repository su github avevo preparato uno script che faceva il browsing in http di tutte le pagine ma venivano fuori troppe richieste http (mi sembra di aver capito che con git non c'è verso di scaricare il solo elenco di file... mo' lo dico a Torvalds ;-) che ha inventato git).

Il repository di slackbuilds.org e i suoi cloni (github ne è pieno di cloni) hanno un indice chiamato SLACKBUILDS.TXT con la seguente struttura:

Codice: Seleziona tutto

SLACKBUILD NAME: EMBOSS
SLACKBUILD LOCATION: ./academic/EMBOSS
SLACKBUILD FILES: EMBOSS.SlackBuild EMBOSS.info README References doinst.sh emboss.desktop emboss.png patch-1-24 slack-desc
SLACKBUILD VERSION: 6.4.0
SLACKBUILD DOWNLOAD: ftp://emboss.open-bio.org/pub/EMBOSS/EMBOSS-6.4.0.tar.gz
SLACKBUILD DOWNLOAD_x86_64: 
SLACKBUILD MD5SUM: 54993a22064222b01bd4fc8086f7684d
SLACKBUILD MD5SUM_x86_64: 
SLACKBUILD SHORT DESCRIPTION:  EMBOSS (European Molecular Biology Open Software Suite)

SLACKBUILD NAME: GMT
SLACKBUILD LOCATION: ./academic/GMT
SLACKBUILD FILES: GMT.SlackBuild GMT.info README slack-desc
SLACKBUILD VERSION: 4.5.7
SLACKBUILD DOWNLOAD: ftp://ftp.soest.hawaii.edu/gmt/gmt-4.5.7.tar.bz2 ftp://ftp.soest.hawaii.edu/gmt/gshhs-2.2.0.tar.bz2
SLACKBUILD DOWNLOAD_x86_64: 
SLACKBUILD MD5SUM: fc8a4a546ff8572c225aa7bdb56bbdf8 db98bff37adc0d51fdf0ffa3834d45ad
SLACKBUILD MD5SUM_x86_64: 
SLACKBUILD SHORT DESCRIPTION:  GMT (suite of geographic processing and mapping tools)

...
...
...
Questo può essere oneroso da fare e non lo chiedo.

a me è sufficiente un filelist, scritto in qualsiasi formato (output di "find" o "find -ls" o elenco di md5 o altro formato) o un Changelog o qualsiasi altra cosa che tracci l'elenco degli slackbuild presenti nel repository. Tutti i dati in più (raccoglitori di slack-desc, versioni e architetture testate, data di inserimento o altro sono sicuramente informazioni utili ma non indispensabili)
Oltre al mio programma questo sarà senz'altro utile anche a tutta la comunità Slackware.

Questo è stato fatto a suo tempo con i repository di pacchetti e la lista di repository indicizzati è passata da una decina a 65 (oltre a quelli che ho eliminato perchè obsoleti o altri motivi). In giro c'è chi ancora carica pacchetti senza il PACKAGES.TXT, ma si tratta più o meno di chi carica non più di una decina di pacchetti, dopodichè tutti concordano che è più facile con il PACKAGES.TXT.

Purtroppo per gli slackbuild ancora non esiste uno standard (e non sono io che voglio crearlo o dettarlo visto che nemmeno Pat ne mette uno nel cd di slackware) quindi mi accontento di una lista sommaria.

Re: Please Add a FileList to your Slackbuild's repositories

Inviato: ven 18 mag 2012, 20:24
da targzeta
Matteo, mica ho capito cosa chiedi. I nostri repository hanno tutti un FILELIST.TXT. O lo stai chiedendo a tutti quelli che hanno un loro repository indicizzato dal tuo programma?

Emanuele

Re: Please Add a FileList to your Slackbuild's repositories

Inviato: ven 18 mag 2012, 20:45
da ZeroUno
spina ha scritto:Matteo, mica ho capito cosa chiedi. I nostri repository hanno tutti un FILELIST.TXT. O lo stai chiedendo a tutti quelli che hanno un loro repository indicizzato dal tuo programma?

Emanuele
No, lo sto chiedendo a chi ha scritto un repository di SOLI slackbuild (tipo slackbuilds.org ecc).

Re: Please Add a FileList to your Slackbuild's repositories

Inviato: sab 19 mag 2012, 7:52
da ponce
ho paura che mantenere la lista sia estremamente problematico: andrebbe aggiornata ad ogni commit fatto con git, e quindi per ogni commit dovresti far girare lo script che la genera e farne un altro per aggiornarla.

slackbuilds.org genera quel file tramite un loro script, ma come puoi vedere e' disponibile solo nel loro repository http, che viene aggiornato con una frequenza molto minore di git (segue il branch "master", non quelli di lavoro, tipo quello di robby che puoi vedere qui) e contiene anche altri file, generati sempre tramite script.
la cosa sarebbe fattibile se ognuno di quelli che ha un repository git di slackbuilds ne mantenesse anche uno http con i soliti, generati tramite degli script sullo stile di quelli di slackbuilds.org.

se vuoi fare qualcosa del genere, forse la soluzione di scaricarsi i repo (non dovrebbero esere molto voluminosi, avendo solo gli script di build) e aggiornarli con git pull e' l'unica percorribile.

poi, nel caso che qualcuno (a caso, tipo me) abbia fatto un fork di un altro repository e faccia spesso un rebase (per facilitare il merge nel repository originale), il git pull non e' sufficiente, ma devi cancellare il branch locale e ricollegarti al remoto, cosi'

Codice: Seleziona tutto

cd /var/lib/sbopkg/SBo-git
git reset --hard
git branch -M master master-old
git checkout -b master
git reset --hard ORIG_HEAD
git branch -D master-old
git checkout -f
l'alternativa e' riscaricare il repository per intero (una cinquantina di mega, ma git li comprime prima del trasferimento e ci mette una manciata di secondi).

Re: Please Add a FileList to your Slackbuild's repositories

Inviato: sab 19 mag 2012, 9:53
da conraid
Io per esigenze varie, tra cui il non sapere quanto posso tenere il repository, etc... ho messo su github gli slackbuilds. Un account di qualche anno fa, ora cambiato e messo proprio in questi giorni in cui parlavi di questa cosa. Ho visto che quel file viene creato tramite script messo come esempio anche da slapt-src, ma necessita di file accessori che io non ho. La lista di slackbuild o di file per me non sarebbe onerosa, ed il commit io lo faccio alla changelog (uso git in modo assolutamente da ignorante in materia, anzi, se mi consigliate sia una guida sia una qualche lettura che spieghi il modo migliore per usarlo...), quindi quando lancio lo script per aggiornare il repository mi si aggiornerebbe anche quel file. Però ripeto, quel file in quel modo adesso per me è impossibile, altri tipi posso farli
Il mio è questo https://github.com/conraid/SlackBuilds, ed è solo una replica delle directory /src di http://slackers.it/repository

Re: Please Add a FileList to your Slackbuild's repositories

Inviato: sab 19 mag 2012, 10:12
da ponce
http://git-scm.com/book/it

non e' ancora stata completata la traduzione in italiano, ma c'e' quasi tutto.

Re: Please Add a FileList to your Slackbuild's repositories

Inviato: sab 19 mag 2012, 10:30
da ZeroUno
@conraid:
come dicevo la lista dettagliata come di quella di slackbuilds.org è un in più

@ponce:
non capisco l'onerosità di fare:
find -ls >FILELIST
prima del commit.

Re: Please Add a FileList to your Slackbuild's repositories

Inviato: sab 19 mag 2012, 10:31
da conraid
Ma ti servono tutti i file, o solo i file .slackbuild?

Re: Please Add a FileList to your Slackbuild's repositories

Inviato: sab 19 mag 2012, 10:59
da ZeroUno
Credevo di averlo spiegato quello che mi serviva ma evidentemente non è così.

Se voglio indicizzare gli slackbuild in un repository io devo sapere quali slackbuild ci sono.

Di conseguenza l'unica cosa necessaria è la lista degli slackbuild.


Poi è chiaro che se a questa lista viene aggiunto altro materiale (elenco dei file nella directory dello SB e/o data dei file e/o cat slack-desc e/o versione pacchetto e/o architettura e/o changelog del repository e/o qualsiasi altra cosa) fa tutto brodo, ma la sola cosa INDISPENSABILE è sapere quali slackbuild ci sono.

E' chiaro che fare quello che fa slackbuilds.org richiede un lavoraccio e non parlo dello script di creazione di SLACKBUILDS.TXT (che in fondo una volta fatto non è più oneroso di find -ls) ma quanto la standardizzazione degli slackbuild e la creazione dei .info in ogni directory dello slackbuild. Questo è, si, molto oneroso.

Re: Please Add a FileList to your Slackbuild's repositories

Inviato: sab 19 mag 2012, 11:16
da ponce
ZeroUno ha scritto:@ponce:
non capisco l'onerosità di fare:
find -ls >FILELIST
prima del commit.
prima di ogni commit?
- anche quello poi finirebbe nel commit e quelli di slackbuilds.org non potrebbero usarlo cosi' com'e' per metterlo nel loro repository ma dovrebbero usare il cherry-pick (lavoro in piu' anche per loro che non mi sento di imporre)
- il commit crescerebbe da poche righe a 3 Mb (la dimensione della lista generata dal comando "find -ls" all'interno del mio repository del solo branch current), che poi uno dovrebbe spedire a github (e' un upload, non un download come il clone/pull).
- il rebase non funzionerebbe piu': ogni volta che e' aggiornato il master su slackbuilds.org faccio il rebase degli altri branch, al momento sono 147.
l'unico modo, forse, sarebbe fare un commit apposta in un branch dedicato, ma come ti ho spiegato, e' un lavoraccio assurdo, anche solo per la lista dei file e farebbe aumentare le dimensioni del repository in maniera esponenziale (3 Mb ad aggiornamento).

non capisco che problema ci sia a clonare i repository/aggiornare le copie locali: perche' dici che e' inutile? ci vogliono pochi secondi per ogni repository per il clone/pull e poi ci puoi fare quello che vuoi...

Re: Please Add a FileList to your Slackbuild's repositories

Inviato: sab 19 mag 2012, 11:19
da conraid
con i file che ho io, cioè dei file.url con meno informazioni degli .info di slackbuild, ed in alcuni casi proprio senza, ho provato a fare uno SLACKBUILD.TXT
https://github.com/conraid/SlackBuilds/ ... BUILDS.TXT
c'è anche la versione .gz
però in effetti ha ragione Ponce, poi ad ogni commit c'è quel cambiamento... mmm
posso metterlo in slackers.it però

Re: Please Add a FileList to your Slackbuild's repositories

Inviato: sab 19 mag 2012, 11:21
da ponce
se uno pubblica gli slackbuild anche via http, con degli script adeguati da far girare ogni tanto si puo' fare, ma non e' pratico con dei repository git (come quelli su github).

prova a fare un tuo repository git di slackbuilds, te ne accorgerai subito, e magari usandolo troverai anche una soluzione (che io al momento proprio non vedo).

Re: Please Add a FileList to your Slackbuild's repositories

Inviato: dom 20 mag 2012, 0:52
da ZeroUno
Io ho un repository di slackbuild su github e il relativo http di pacchetti.
Non conosco git in profondità fino ai rebase ecc., così come non conosco i regolamenti per l'interazione con il repository ufficiale di slackbuild.org e sbopkg.

Il mio repository su github è lo stesso di http, cioè c'è il packages.txt, checksum.md5 ecc.
In locale pacchettizzo, lancio uno script che crea il packages ecc e do git commit&push (con *.txz in gitignore; quelli li carico a mano sull'http)
http://www.z01.eu/repo-slack

Il problema di fare un git clone e poi pull periodico non è un problema di tempo ma di spazio.
Il git clone dei repository di slackbuild su github è di c.a. 2G. Se scarico la copia targz da github occupa meno spazio ma non posso fare poi il download incrementale.
Io devo indicizzare, non fare un mirror di github.

Ieri ho scaricato sbopkg e devo dire che non condivido il suo funzionamento.
Io magari devo compilare un pacchetto grande un megabyte, magari una tantum, e mi devo scaricare più di 100MB di repository.
Che ci faccio poi? non mi poteva scaricare solo quel pacchetto come fa slackyd?
Per me ha poco senso. Slackbuilds.org ha uno SLACKBUILD.TXT; perchè non scaricare solo quello?

Re: Please Add a FileList to your Slackbuild's repositories

Inviato: dom 20 mag 2012, 4:03
da ilmich
Offtopic: da quel che so io il formato SLACKBUILD.TXT è stato 'inventato' dal tool slapt-src (che nel readme include pure lo script per generarlo).
sbopkg è nato probabilmente prima e quindi nn supporta tale formato... c'e' pero' pure da dire che usa rsync quindi la prima volta è oneroso.. poi non piu'.

Re: Please Add a FileList to your Slackbuild's repositories

Inviato: dom 20 mag 2012, 9:30
da ponce
ZeroUno ha scritto:Io ho un repository di slackbuild su github e il relativo http di pacchetti.
Non conosco git in profondità fino ai rebase ecc., così come non conosco i regolamenti per l'interazione con il repository ufficiale di slackbuild.org e sbopkg.

Il mio repository su github è lo stesso di http, cioè c'è il packages.txt, checksum.md5 ecc.
In locale pacchettizzo, lancio uno script che crea il packages ecc e do git commit&push (con *.txz in gitignore; quelli li carico a mano sull'http)
http://www.z01.eu/repo-slack
ad un'occhiata veloce mi sembra di aver notato qualche file superfluo: il tar.gz dei sorgenti non ti serve su git (ci sono gia' i sorgenti), cosi' come le informazioni dei pacchetti; quello, secondo me, e' materiale relativo al solo repo http.
se posso permettermi di darti qualche altro consiglio spassionato (che poi sono piu' o meno gli stessi che mi dette Robby quando feci il secondo repository git, quello attuale), io, fossi in te, userei lo standard di slackbuilds.org: farei un fork del loro repository e farei le necessarie correzioni/upgrade/aggiunte seguendo il loro standard (come gia' faccio). Guarda come sono fatti i loro repository, git e http, e ordina directory e script di build di conseguenza. Questo secondo la logica che usare un solo standard aiuta tutti a scambiarsi patch/script e collaborare meglio.
non e' assolutamente mia intenzione mettere in discussione gli standard definiti qui, non fraintendetemi, infatti potresti anche seguire lo standard di slacky, magari mettendo i loro sorgenti su git e facendo correzioni/update o che altro in uno o piu' branch, per compilare con un qualche tool (quello che preferisci) anche quelli in modo automatizzato, in questo modo ne beneficierebbero tutti gli utenti di slacky che preferiscono compilarsi da soli i pacchetti, avendo anche la possibilita' di scegliere tra il repository ufficiale e quello con le tue modifiche.
Il problema di fare un git clone e poi pull periodico non è un problema di tempo ma di spazio.
Il git clone dei repository di slackbuild su github è di c.a. 2G. Se scarico la copia targz da github occupa meno spazio ma non posso fare poi il download incrementale.
Io devo indicizzare, non fare un mirror di github.
penso che quello dello spazio non sia un problema.
tieni di conto che stai clonando svariati (non ho idea di quanti) repository git, con le loro rispettive history, per una tua necessita' di indicizzarli e aggiornare gli indici: come riflessione personale, per fare un lavoro del genere, 2G sono uno spazio irrisorio.
come ti ho spiegato, non vedo altri metodi pratici (ma potrebbero anche esserci e magari mi sfuggono, chi lo sa).
Ieri ho scaricato sbopkg e devo dire che non condivido il suo funzionamento.
Io magari devo compilare un pacchetto grande un megabyte, magari una tantum, e mi devo scaricare più di 100MB di repository.
Che ci faccio poi? non mi poteva scaricare solo quel pacchetto come fa slackyd?
Per me ha poco senso. Slackbuilds.org ha uno SLACKBUILD.TXT; perchè non scaricare solo quello?
la logica che seguono sbopkg/slackbuilds.org e' diversa: tutto quello che ti serve te lo pacchettizzi da solo, non scarichi pacchetti precompilati.
quindi avere 100 Mb di sorgenti sul disco che puoi modificare per eventuali upgrade, su cui puoi fare dei grep o chissa' cos'altro e' una comodita', non e' spazio disco buttato via.
non so sinceramente cosa dirti se il principio secondo cui funziona non ti piace (spero tu comprenda la mia difficolta' in tal senso).

P.S. 55020 ti ha risposto su linuxquestions: e' una persona estremamente in gamba, secondo me confrontarsi con lui puo' esserti utile per arrivare a una soluzione.