<br><br><div class="gmail_quote">Il giorno 16 novembre 2010 13:35, Manlio Perillo <span dir="ltr">&lt;<a href="mailto:manlio.perillo@gmail.com">manlio.perillo@gmail.com</a>&gt;</span> ha scritto:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">

Il problema però è capire i casi di uso.<br>
In quale casi hai bisogno di verificare l&#39;integrità di tutti i moduli<br>
Python utilizzati? </blockquote><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<br>
L&#39;unico caso di uso che mi viene in mente è quando l&#39;interprete python<br>
viene eseguito con privilegi particolare (ad esempio root, oppure<br>
accesso a porte IP).<br></blockquote><div><br>
Penso che sia necessario, oltre ai casi da te citati, nel caso in cui ad
 esempio Python venga utilizzato come scripting di un altro motore 
(poniamo l&#39;esempio di un motore grafico, o di una applicazione tanto 
complessa da rendere necessaria tale scelta). In quel caso, qualora si 
possa voler preferire un linguaggio già pronto (anzichè fare un nuovo 
interprete che magari supporti i file binari per proteggere anche la 
logica), si rende necessario il poter operare in tutta tranquillità in 
una sandbox, e quindi controllare che non vi siano manomissioni a uno 
qualunque dei moduli utilizzati (altrimenti si comprometterebbe la 
stabilità e il flusso di lavoro del programma).<br>
Per fare un esempio mi vengono in mente solo applicativi di una certa 
stazza, che probabilmente, visto il loro valore, non si appoggerebbero 
mai ad una soluzione che ne esponga la logica.<br>
<br>
Boh, adesso non saprei precisamente il perchè di una scelta, magari come
 dici tu è solo perchè da root potrebbe compromettere l&#39;intero sistema, 
ma se è un software destinato ad uso professionale penso che anche se 
non venga eseguito da root dovrebbe garantire sempre la corretta 
esecuzione, pensa se un utente modifica i file python, magari per 
sbaglio, e poi lavora sul software (poniamo che sia di disegno tecnico),
 clicca su &#39;Salva&#39; e si rende conto che il menù File non funziona perchè
 la relativa funzione python è stata compromessa (e non è rara la scelta
 di un linguaggio di scripting per gestire l&#39;interfaccia grafica, anzi).
 Invece controllando, all&#39;avvio, eventualmente segnala che il programma 
necessita di essere reinstallato e boh.<br>
<br>
Se ho sbagliato qualcosa, correggetemi pure.<br>
Probabilmente ci sono altre motivazioni più valide, ma che non mi vengono in mente. <br>
</div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;"><div class="im">
<br>
</div>Al momento non sono sicuro della differenza tra i due, dovrei leggere il<br>
codice.<br></blockquote><div><br>
Io prevedo di farlo stasera, se ho un po&#39; di tranquillità, nel caso scopro la differenza la posto qui subito. <br>
</div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
&gt; [...]<br>
<div class="im">&gt; Unico problema trovato in fase di compilazione del sorgente è che il<br>
&gt; modulo hashlib crea un errore cercando di importare _md5, anche se,<br>
&gt; onestamente, non capisco perchè in fase di compilazione tenti di<br>
&gt; eseguire il modulo signedimporter (che importa hashlib).<br>
&gt;<br>
<br>
</div>Parli della compilazione di python?<br></blockquote><div><br>
Si, dopo aver modificato la &#39;_PyImportHooks_Init&#39; e compilando ottengo 
quell&#39;errore. Se uso la stessa gestione che usano per zipimport ovvero, 
in caso di errore passaci sù, funziona giustamente. Però poi anche a 
runtime ad ogni avvio quella sarebbe la gestione dell&#39;errore. 
Probabilmente avviene perchè hashlib non ha ancora accesso a tutte le 
sue dipendenze (magari devono essere compilate).<br>
Per provare ho lasciato passare l&#39;errore, la soluzione definitiva 
sarebbe o fare il modulo in C (come lo è zipimport) o magari trovare un 
modo per aggirare il problema di hashlib.<br>
<br>
</div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<div class="im"><br>
<br>
Ciao  Manlio<br clear="all">
</div></blockquote></div><br>Ciao e buona serata.<br>PS. a questo punto, se dovesse rendersi necessario il fare troppe modifiche all&#39;interprete per via di vari problemi nei moduli, si potrebbe pensare ad includere un nuovo file .c all&#39;interprete e rendere il controllo parte integrante dell&#39;interprete stesso, ovviamente se dovesse essere necessario farlo su *tutti* i moduli, permettendo però, di inserire in qualche modo il dizionario con le chiavi. Però mi suona di cosa che necessita la modifica dell&#39;inizializzazione di CPython, perchè dovrebbe poter accedere ad un dato runtime (il dizionario), prima dell&#39;inizializzazione e quindi dell&#39;esecuzione effettiva del programma: forse la soluzione non è fattibile.<br>