Edit
Edit
Marco, un problema di comunicazione indubbiamente ESISTE... ed esiste perché sembra che tu ti rifiuti di capire che hai a che fare con dei sistemi che si basano su una "filosofia" e su una serie di "tradizioni", convenzioni, ecc. che - giuste o sbagliate che siano - sono radicalmente diverse quando non antitetiche rispetto alle tue.
Quello che mi pare tu abbia frainteso nel mio precedente intervento (che se avessi lontanamente immaginato quale vespaio avrebbe sollevato mi sarei guardato bene dal fare...) è che io non stavo affatto perorando una qualche causa e men che meno stavo cercando di convincerti (o di convincere chiunque altro) della sua validità. Stavo semplicemente cercando di spiegarti come stanno le cose. Che ti/ci piaccia oppure no.
Un pacchetto (o una ebuild) NON è necessariamente uguale al software distribuito dagli sviluppatori "upstream", ma si tratta (quasi sempre) di una versione specifica che è stata adattata e modificata come ritenuto più opportuno da chi ha creato il pacchetto / la ebuild, a seconda delle esigenze, delle pratiche e degli standard del sistema specifico.
Pensa che dal momento che la licenza di mozilla non gli consentiva di distribuirne versioni modificate, per anni Debian ha escluso tanto Firefox quanto Thunderbird dalla distribuzione!
Per aggirare il problema, visto che si trattava di software così importanti e diffusi, gli sviluppatori di Debian hanno quindi fatto e mantenuto dei propri fork (chiamati rispettivamente iceweasel ed icedove), con tanto di loghi e grafica diversi!
Se ti scontri con la "filosofia", gli standard, le convenzioni e le pratiche comuni di una distribuzione, vai a sbattere contro un muro di gomma spesso da qui alla fine dell'Universo. Non lo smuovi di un millimetro neanche a cannonate.
Se ti sta bene, bene, altrimenti è lo stesso. Se la licenza del tuo software lo consente, questo sarà modificato e distribuito così come vuole chi mantiene il "pacchetto", in caso contrario il tuo software sarà semplicemente escluso, senza tanti problemi. Così come succede ad es. per LMS.
Per il resto confesso di non aver letto tutto quanto è seguito, ma continuo a non capire quale sia l'argomento del contendere.
Mi spieghi -in breve- qual è il problema? Cos'è che non ti sta bene?
eccome se lo fa!
Le distribuzioni "binarie", dovendo poter girare su qualsiasi macchina (o quasi), devono di necessità virtù utilizzare le opzioni più generali e generiche possibili. Al contrario, Gentoo di norma attiva tutte le opzioni specifiche per l'esatto hardware dove si sta installando!
Ultima modifica di UnixMan : 19-10-2016 a 21:05
Ciao, Paolo.
«Se tu hai una mela, e io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee.»
Scusate l´edit e il ripost.
due player A e B (sullo stesso sistema)
A installato/compilato con nelle USE flag Flac attivo
B installato/compilato con nelle USE flag Flac inattivo (-flac)
A suona i flac
B non sa cosa sono, e non li suona
Le use (in gentoo) non entrano in gioco nella compilazione?
si puó ottenere questo in altri modi certo? mi piace NO, é comodo? NO integra il tutto per bene e automaticamente nel sistema? NO!
e facile da far mettere in atto? NO
Ogni distribuzione (o quasi) hanno strumenti per facilitare questo. ce qualche strano motivo per non usarle? rendono le cose troppo facili? la ebuild ha qualche virus che distrugge il PC?
Si crea del software libero, credo con lo scopo di renderlo disponibile e farlo usare come meglio crede l´utente...questo dovrebbe essere lo spirito. Senza Paure...e paranoie dettate poi da cosa?
Io penso di aver chiarito fin troppo.
QUi è l'inghippo.
NO, le USE FLAGS NON entrano in gioco, in quanto tali.
Uso squeezelite come esempio , perchè l'ho visto, ma immagino sia simile altrove
1. GCC (il tool di compilazione) non sa che cosa siano le USE FLAGS , bisogna 'tradurle' in opzioni di compilazione.
2. quello specifico 'ebuild (che conosce le USE, ovviamnete) si chiede SE NON è impostata l'opzione USE FLAC, quindi dato che parte da sorgente, esegue una PATCH al sorgente che 'disabilita' la dipendenza del player da FLAC.
3. (non serve per FLAC in squeezelite, ma se fosse ffmpeg sarebbe così) imposta l'opzione di compilazione APPLICATIVA che esclude FLAC (tipico di squeezelite, non generalizzabile)
4. fa il patch del makefile escludendo FLAC dalle extra LIBS,
4. lancia il make usando il makefile patchato sui sorgenti patchati
Lasciando perdere il bello o brutto di usare le patch, sapete come la penso, il fatto è che NON sono le USE a gestire la compilazione.
E' una logica aggiuntiva, pensata caso per caso che - nello specifico - riconduce alla 'logica' delle USE FLAGS ogni precedente o altrimenti realizzata gestione delle dipendenze dinamiche, ma non è universale ne - tantomeno - automatico.
Nello speciico, abbiamo già visto che se metti USE PULSEAUDIO, non provochi NULLA, perchè nulla c'è da fare, nella gestione delle dipendenze applicative, mentre installi pulseaudio. Vale per pulseaudio come per qualsiasi altra cosa, es. libreOffice.
Se, d'altrocanto, ometti di gestire qualche dipendenza obbligatoria, tutto andrà altrettanto bene ma abortirà in fase di run.
E' la eBUILD che può comandare il make (e quindi la compilazione) introducendo la opportuna logica, ma come, in che grado e perchè non sono le use flag a stabilirlo, è chi scrive la ebuild che lo fa, magari decidemdo di basarsi sulle ebuild, ma potrebbe basarsi sulla presenza di un file in una directory o sulla divisibilità per 3 deil'epoch o...
diresti che è l'epoch a governare la compilazione in gentoo?
Qui si origina il primo fraintendimento.
Comunque io non ho mai detto di non usare le USE FLAGS, che anzi ritengo utilissime proprio per 'orchestare' il sistema grazie a portage ed alle eBUILD, sono strumenti diversi, dedicati a scopi diversi, quindi quanto segue nel tuo intervento non mi riguarda, nel senso che posso tranquillamnet econvenirne (ma non sono poi così brutte, anzi).
Se ti concentri su quanto precede, credo ci siamo capiti, non è una opinione o un giudizio, è un dato di fatto...
Lo può fare, siamo tutti daccordo, usando le opportune opzioni, anche su macchine diverse da quella target, esattamente come ogni sistema GNU di cui siano disponibili i sorgenti.
Rimane da stabilirne la reale opportunità, di fatto, l'unica opzione che viene impostata da Giovanni (e credo in generale per default) è -march, che è quanto di più generico si possa ipotizzare e che se non specifichi 'prende' il valore del sistema corrente.
E' poco? è tanto? non è questo il punto, il punto è che il vantaggio deriva dal fatto che compili i sorgenti per un uso specifico, non da una funzionalità esclusiva di gentoo.
Questo è il secondo fraintendimento.
Il vantaggio, quindi, è quello di installare da sorgente, così che tutto è allineato alle stesse opzioni. Personalmente, a pelle e senza averlo mai provato, sono poi convinto che il lavoro di portage con le USE FLAGS se ben orchestrato possa produrre ottimi vantaggi.
Tutta la diatriba è volta a chiarire questi due fraintendimenti e ringrazio Giovanni per avermi consentito di arrivare all'ultima sintesi ed alle vostre smentite, che vi chiedo di verificare e riconsiderare alla luce di quanto vi ho risposto, verificandolo.
Se è come credo, vi accorgerete che c'è del vero, vi renderete conto del perchè ho insistito e del perchè sia importante, spazzando 'il fumo' e lasciando l'arrosto che a mio avviso è tanto e di ottima qualità.
Poi è chiaro che ogni strumento può essere utilizzato nbene o male, ma questo è completament eun'altro discorso.
Ciao, Marco.
"Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius -- and a lot of courage -- to move in the opposite direction."
— E. F. Schumacher (mis-attributed to A. Einstein)
________________________________________________________________________________
Autore della patch R2 per Squeezelite e del plugin C-3PO. note libere
Logitech media Server 7.9 > miniPc + squeezelite-R2 / SB+ > "Lu Scalmentu" NOS R2R DAC by TubeOne/ AudioResearch DAC 1-20 >
Klimo Merlino Gold TPS > DIS Interconnect > Kent Gold > Reference > Monitor Audio Studio 20 SE
Gentoo non l'ho inventato io e nemmeno Portage.
E nemmeno i tools speciali di Gentoo.
Nel make.conf di Portage sono riportate tutte le opzioni di compilazione comprese le use.
E l'utente che le decide, naturalmente verificando che siano congruenti .
Tutte queste opzioni determinano come deve essere compilato il binario e quali librerie abilitare o meno
Tutte queste opzioni di compilazione in ultima analisi è Portage che le rende attuabili e si cura che siano congrue al sistema.
Come fai a dire che le use non rientrano nelle opzioni di compilazione. Sono un vincolo alla compilazione come richiesto dall'utente
e il binario sara X anzichè Y....
Un pacchetto in Debian deve funzionare con precise dipendenze che sono imposte nel binario precompilato e ci devono essere tutte
Con Gentoo è l'utente che sceglie come e cosa compilare con precise opzioni impostate.
l'applicativo non viene stravolto ma si fa' in modo che si armonizzi con la macchina e con le
scelte dell'utente abilitando le cose che vuole utilizzare e non tutto lo scibile delle opzioni.
Possibile che sia cosi difficile da digerire.
player1:thin client+voyage - player2:futros450+Debian > Usb Transport: I2soverUSB + DAC (6x1704+I/V a tubi) - Attenuatore passivo Lightspeed
Ampli finale: OTL 6C33 - MyRef Fremen Ed. - Diff.: Diapason Adamantes II - Guida LMS+Squeezelite - B
Generico?....
Non è " -march " ma -march=core2 essendo che esiste altra istruzione con altre CPU :
-march=core-avx2
-march=corei7-avx
-march=corei7
-march=corei7-avx -mno-avx -mno-aes -mno-rdrnd
-march=amdfam10 -mcx16 -mpopcnt
-march=bdver1 -mprefer-avx128 -mvzeroupper
https://wiki.gentoo.org/wiki/Safe_CFLAGS
e bisogna anche abilitare il kernel per questa roba
Ultima modifica di bigtube : 19-10-2016 a 23:05
player1:thin client+voyage - player2:futros450+Debian > Usb Transport: I2soverUSB + DAC (6x1704+I/V a tubi) - Attenuatore passivo Lightspeed
Ampli finale: OTL 6C33 - MyRef Fremen Ed. - Diff.: Diapason Adamantes II - Guida LMS+Squeezelite - B
per il march forse sarebbe anche utile questo script https://wiki.gentoo.org/wiki/CFLAGS
E suggerirei...se fosse possibile di rimanere su un aspetto pratico...per questo tread...con suggerimenti pratici...consigli pratici ecc...
e toglierei tutti i post inutili, che sono tanti.
Ultima modifica di antonellocaroli : 19-10-2016 a 23:07
Altro chè, Il tuo "intervento sulla filosofia politica dei sistemi operativi, cenni di cooperazione binaria ed integrazione collettivistica", sarà la base della mia richiesta di dedicare un corso nella facoltà di storia e filosofia, spero non ti spiacerà se vorrò aggiungere "scetticismo delle webservices", "individualismo nei servlet" ed "anarchia come pattern applicativo". Già ho depositato "la pigrizia come criterio ispiratore del software".
Vieni a tenere una lectio magistralis, vero? ...Mi sono divertito un casino, quindi grazie per averlo scritto.
Per il resto, che io non ami molte delle cose che i sistemisti linux cercano di covincermi DEBBANO essere così è un dato di fatto, ma non è l'argomento del contendere, che non è un problema e nemmeno qualcosa che non mi sta bene in se, ma piuttosto in come viene presentato.
Credo che sia ben sintetizzato nell'ultimo mio post in risposta a Giovanni, con chiarimenti nelle due succesive repliche di Filippo e tua ed all'ultimo mio.
Se serve riassumo, ma dato che abbiamo trovato un minimo di terreno comune, proverei o a stare su quello sugli aspetti 'tecnici'.
In sostanza, io nego che "Gentoo risulta particolarmente ottimizzato grazie alla sua modalità di compilazione guidata dalle USE FLAGS" (ho definito questa frase il mito).
Nota bene che non nego che gento sia particolarmente ottimizzato e nemmeno l'utilita delle USE FLAGS allo scopo, ma solo la relazione tra le due cose passando per la compilazione, quindi
1. ho teso a smontare l'idea che ci sia una particolarità nella compilazione in gentoo.
2. ho evidenziato la differenza tra le dipendenze dinamiche a livello di codice e di pacchetti, segnalamndo che le USE FLAGS gestiscono solo le seconde, senza legame diretto con le prime.
Queste da sole sono suffcienti allo scopo, quindi la maggiore ottimizzazione di gentoo va cercata in qualcos'altro, che io vorei davvero capire cos'è.
Tutto il resto è colore, ma scrivo questo dal primo post, dove invitavo a distingure tra build, ebuild e compilazione.
Ciao, Marco.
"Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius -- and a lot of courage -- to move in the opposite direction."
— E. F. Schumacher (mis-attributed to A. Einstein)
________________________________________________________________________________
Autore della patch R2 per Squeezelite e del plugin C-3PO. note libere
Logitech media Server 7.9 > miniPc + squeezelite-R2 / SB+ > "Lu Scalmentu" NOS R2R DAC by TubeOne/ AudioResearch DAC 1-20 >
Klimo Merlino Gold TPS > DIS Interconnect > Kent Gold > Reference > Monitor Audio Studio 20 SE
Ci sono cose che non mi tornano in quello che scrivi.
Nel quote ho numerato le tue frasi così da potermici riferire chiaramente, altrimento non si capisce.
1. Non mi risulta che le USE FLAGS siano nel make.conf.
2. Non è l'utente, ma l'estensore delle ebuild a stabilire le USE FLAGS (se ti riferisci a queste, non è chiarissimo il riferimento, scusa) e non è necessario siano congruenti, è legittismissimo inserire USE che nulla hanno a che fare con le dipendenze da codice.
3. No, Non mi riuslta che le USE FLAGS determinino come deve essere compilato il binario, v. sopra e v. qui: https://devmanual.gentoo.org/general...pts/use-flags/
4. No, le opzioni di compilazione le attua GCC, il compilatore GNU. Portage - tipico di Gentoo - eventualmente lo invoca, configurando con una logica propria i parametri.
5. Le USE non rientrano nella compilazione, la dipendenza di PACCHETTO X da pacchetto Y e Z, nulla centra con le dipendenza tra applicazione X e libreria Y o Z. Nessuno vincola la consistenza tra applicazioni, pacchetti e alberi di dipendenza, v. qui: https://devmanual.gentoo.org/general...pts/use-flags/
E' il nocciolo... se non ci capiamo su quetso, non ci capiremo mai.
6. Ok
7. NO, stai riproponendo il mito. Non c'è NULLA in gentoo di particolare e che non ci sia in qualiasi distribuzione GNU in grado di far quello che dici per uno specifico applicativo. Di certo non c'è per un applicativo installato da binario ma non c'è nemmeno per quelli che installi da sorgente e ricompii.
Per ottenerlo, devi modificare i sorgenti, magari con una patch, ma lo puoi fare OVUNQUE, non solo in gento, al di là del fatto che sia buona o cattiva prassi.
Visto che ci stiamo capendo e ci sono almeno 2 puntoi cardine da chiarire, vogliamo capire com'e stanno le cose?
Fondamnetali sono il punto 3, 5 e 7.
Un esempo CHIARISSIMO di come funziona ciò che dici è proprio nella ebuild di squeezelite, se nessuno si offende, potremmo analizzare quella.
Ciao, Marco.
"Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius -- and a lot of courage -- to move in the opposite direction."
— E. F. Schumacher (mis-attributed to A. Einstein)
________________________________________________________________________________
Autore della patch R2 per Squeezelite e del plugin C-3PO. note libere
Logitech media Server 7.9 > miniPc + squeezelite-R2 / SB+ > "Lu Scalmentu" NOS R2R DAC by TubeOne/ AudioResearch DAC 1-20 >
Klimo Merlino Gold TPS > DIS Interconnect > Kent Gold > Reference > Monitor Audio Studio 20 SE
Ci sono attualmente 1 utenti che stanno visualizzando questa discussione. (0 utenti e 1 ospiti)