Newsgroup: it.comp.os.linux.debian
Titolo: Ricompilare squid alla "debian-way"

Ciao a tutti,
ho "aptghettato" squid3 con annessi e connessi pero' ora scopro che non 
e' compilato con l'opzione per i delay-pool. Normalmente scaricherei i 
sorgenti e andrei nella classica maniera, per seguire invece la 
debian-way qual'e' la best practice ?
"Aptghetto" i sorgenti e vado di ricompilata con tutte le opzioni piu' i 
delay-pool o ci sono altri metodi/sistemi migliori o semplicemente piu' 
consoni per debian ?
Tnk's
Rizio
-- 
Si dice che essere liberi significa non avere nulla da perdere...sembra 
facile a prima vista...ma la verità è che non avere nulla da perdere 
significa essere pronti a rischiare tutto ciò che si possiede.

 debian-way qual'e' la best practice ?
apt-get source quid3
Poi modifichi debian/changelog aggiungendoci un "pezzo" all'inizio dove 
cambi la versione (in modo che non te lo sostituisca subito con la 
versione nei repository) con la descrizione e i tuoi dati (quando vedi il 
file capisci).
Quindi modifichi debian/rules per aggiungere le opzioni che ti servono al 
configure.
E infine dai un
fakeroot debian/rules binary
e lui ti costruisce il pacchetto installabile.
A questo punto ti conviene fissarlo in aptitude, in modo che non te lo 
aggiorni da solo, e devi stare attento alle nuove versioni e ricompilarlo 
di conseguenza.
Bye.

 di conseguenza.
Fichissimo !!! Per curiosita' mi documento meglio sul comando "fakeroot" 
che non conosco, intanto grazie mille per la procedura.


 che non conosco, intanto grazie mille per la procedura.
Detto in breve: ti permette di eseguire operazioni facendo credere al 
sistema di essere root.
In questo caso ti permette di compilare il pacchetto rimanendo "utente 
normale", e di passare a root solo per fare il "dpkg -i" dei pacchetti che 
hai creato.
Questo ti consente di evitare che un pacchetto fatto male vada a fare 
casini. Per esempio se il "make install" del pacchetto scrivesse 
direttamente un "/usr/bin" invece che in "$prefix/usr/bin" avresti il culo 
parato. :)
Bye.

 fakeroot debian/rules binary
Io in genere preferisco un
dpkg-buildpackage -b -uc -us
-- 
Flavio Visentin
Scientists have finally discovered what's wrong with the female brain:
On the left side, there is nothing right, and on the right side, there
is nothing left.

> parato. :)
Il "culo parato" per cosa ?! Perche' per quanto riguarda la mia passata 
vita da Slackwarista non ho mai avuto problemi di quel tipo.... solo 
fortuna ?
@THeZiPMaN:
Dal man di dpkg-buildpackage mi sembra di capire che l'opzione -us -uc 
siano identiche, sbaglio ?
(io sono messo cosi':
prx:~# dpkg-buildpackage --version
Debian dpkg-buildpackage version 1.13.25. )
Poi ora non sono ancora riuscito ad eseguire la procedura che mi avete 
descritto (qui le cose vengono gestite usando procedure "a buffer LIFO" 
purtroppo percio' e' sempre un delirio e una rincorsa dei problemi 
rimasti aperti) percio' magari tornero' a disturbarvi appena riusciro' a 
provarla.
Vi ringrazio in anticipo.


 fortuna ?
Con Slackware e Debian (e Gentoo, credo) vai abbastanza tranquillo perche` 
mettono molta cura nei sorgenti. Puo` andarti storta se tenti di creare un 
pacchetto di un software non ancora pacchettizzato.
Il rischio e` che ti vada a sovrascrivere un file di un pacchetto gia` 
installato, generando malfunzionamenti impossibili da individuare, a volte 
(per esempio se ti cambia un .so o un eseguibile con una versione 
incompatibile a livello binario).
Con fakeroot gli script credono che tu sia root, ma il sistema sa che non 
lo sei, quindi non ti lascia sovrascrivere quei file.
Bye.
P.S.: La sfiga non e` cieca. :)

Scusate la domanda banale ehhh ma mi sorge spontanea....
la versione che viene scaricata con apt-get source squid3 e' la 3.0.PRE5 
mentre l'ultima versione stabile e scaricabile dal sito di squid e' la 
3.0.STABLE10
Ora, visto che le differenze tra le due directory sono solo la dir 
debian cosa succede se io trasporto la dir debian dentro la STABLE10 ed 
eseguo la procedura che mi avete suggerito da li' (percio' con i 
sorgenti della STABLE10) ? Cosa ottengo ?
Grazie


 sorgenti della STABLE10) ? Cosa ottengo ?
Se ti va bene, funziona tutto.
Se ti va male, devi mettere mano agli script in debian/ per sistemare la 
situazione.
Bye.

 situazione.
Grazie mille, appena riesco provo e vi so dire come finisce.
Tnk's a lot !!!


 siano identiche, sbaglio ?
+ o - sì (in realtà -us con -b non serve). Puoi anche ometterle che tanto
servono solo per evitare di mostrare un warning ma non inficiano la bontà
del pacchetto.


 del pacchetto.
K


 Grazie mille, appena riesco provo e vi so dire come finisce.
Secondo le migliori previsioni dell'assioma di Murphy "se stai facendo 
qualcosa di nuovo e puo' essere molto complicato vedrai che sara' 
complicatissimo se non peggio" ovviamente ho dovuto smanettare a bestia 
con i vari debian/rules, patch/ e *.install senza contare i numerosi 
errore di compilazione perche' ovviamente io non avevo tutti gli helper 
che nel configure venivano dichiarati.
Ma tant'e' che alla fine come diceva un mio vecchio amico "boia chi 
molla" sono riuscito a compilare i sorgenti della STABLE10 con le 
"rules" della PRE5 (debian stable).
Fin ora, dalle mie prove e' smodatamente piu' performante la versione 
(usando sempre la conf della PRE5).
Grazie mille di nuovo per l'aiuto e per le info.


 che nel configure venivano dichiarati.
apt-get build-dep squid3


 apt-get build-dep squid3
Gulp..... ma quante cacchio di opzioni ha "quel coso" !?!?!
Poi non l'avrei comunque fatto per non portarmi in casa una marea di 
cose che comunque non uso pero' non avrei creduto che fosse cosi' 
versatile e completo apt.
Tnk's again


 cose che comunque non uso
Ti installa SOLO quel che serve per compilare il pacchetto, non un file di
più; è la soluzione corretta e migliore.


 più; è la soluzione corretta e migliore.
Provo con un esempio per capire bene come usare al meglio apt/debian:
il sorgente di squid era configurato in automatico con l'opzione ldap, 
se io avessi dato un:
apt-get build-dep squid3
tu dici che lui mi avrebbe installato solo:
Build-Depends: libldap2-dev, libpam0g-dev, libdb4.4-dev, sharutils, 
dpatch (>= 2.0.9), cdbs, libsasl2-dev, debhelper (>=5), libcppunit-dev
come da file debian/control giusto ?
Pero' con un aptitude show libldap2-dev
mi dice che:
Dipende: libldap2 (= 2.1.30-13.3)
Va in conflitto: libldap-dev, libopenldap-dev
che a sua volta:
aptitude show libldap2
Dipende: libc6 (>= 2.3.6-6), libgnutls13 (>= 1.4.0-0), libsasl2-2
Va in conflitto: libldap2-tls, ldap-utils (<= 2.1.23-1)
percio' mi avrebbe innescato tutta una serie di "movimenti" per me 
incontrollabili (nel senso che avrei dovuto verificare bene ogni singolo 
movimento di apt prima di procedere con lo yes.
La sto complicando o sarebbe successo davvero cosi' ?
Rizio
P.S. premetto che non sto cercando un sostituo del windows-installer eh, 
e' solo per capire come muovermi a prescindere dalla conoscenza che un 
sysadmin deve avere del sw installato sue macchine.


 La sto complicando o sarebbe successo davvero cosi' ?
Sì, sarebbe successo quello che hai scritto e personalmente non mi è mai
successo che ciò creasse problemi. Usando build-dep al termine del lavoro
puoi usare "apt-get autoremove" per eliminare in automatico tutte le
dipendenze installate dal build-dep.
Installando a mano invece devi anche disinstallare manualmente perché non è
aggiornato l'extended state.


 aggiornato l'extended state.
Grazie mille ZiP, pianin pianino credo (spero) di cominciare a capire 
come gira.
Rizio
