Pagina 1 di 1

[RISOLTO] Problema di creazione del pacchetto: PDF24

Pubblicato: 24 ottobre 2018 - 03:59
di DominiqueG
Ciao a tutti

Nonostante abbia riflettuto e rimuginato sul problema, non ho ancora trovato la soluzione.

Sto cercando di creare un pacchetto Wapt per PDF24 Con MSI continuo a ricevere un errore con la versione della chiave di disinstallazione:

Codice: Seleziona tutto

2018-10-23 11:14:03,700 CRITICAL Fatal error in install script: EWaptSetupException: Fatal error : MSI pdf24-creator-8.6.1.msi has been installed and the uninstall key {E6280618-D2EA-48D8-9CCA-D50BCCDBCD62} found but version is not good:
Traceback (most recent call last):
  File "C:\Program Files (x86)\wapt\common.py", line 3512, in install_wapt
    exitstatus = setup.install()
  File "c:\waptdev\ire-pdf24-creator-wapt\setup.py", line 53, in install
    install_msi_if_needed('pdf24-creator-%s.msi' %versionsoft, 'AUTOUPDATE=[No] DESKTOPICONS=[No] FAXPRINTER=[No] /[QN]',get_version=getversionpdf24, killbefore=['pdf24.exe'])
  File "C:\Program Files (x86)\wapt\common.py", line 3471, in new_func
    return func(*args,**kwargs)
  File "C:\Program Files (x86)\wapt\setuphelpers.py", line 3917, in install_msi_if_needed
    error('MSI %s has been installed and the uninstall key %s found but version is not good' % (msi,key))
  File "C:\Program Files (x86)\wapt\setuphelpers.py", line 4305, in error
    raise EWaptSetupException(u'Fatal error : %s' % reason)
EWaptSetupException: Fatal error : MSI pdf24-creator-8.6.1.msi has been installed and the uninstall key {E6280618-D2EA-48D8-9CCA-D50BCCDBCD62} found but version is not good

Tuttavia, la versione e la chiave di disinstallazione vengono visualizzate nelle proprietà MSI:

Codice: Seleziona tutto

version_msi = get_msi_properties('pdf24-creator-%s.msi' %versionsoft)
print(version_msi)
    
    ## me retourne :
{u'PRIMARYFOLDER': u'INSTALLDIR', u'UpgradeCode': u'{8D2DF301-CE53-4939-81C2-D659E7B857BE}', u'WixUI_Mode': u'FeatureTree', u'FAXPRINTER': u'Yes', u'SecureCustomProperties': u'INSTALLDIR;PREVIOUSVERSIONSINSTALLED', u'AUTOUPDATE': u'No', u'ALLUSERS': u'1', u'ARPPRODUCTICON': u'ProductIcon.exe', u'DefaultUIFont': u'WixUI_Font_Normal', u'ProductLanguage': u'1033', u'ARPHELPLINK': u'http://www.pdf24.org', u'PROGRAMMENU': u'Yes', u'INSTALLLEVEL': u'3', u'Manufacturer': u'www.pdf24.org', u'ProductCode': u'{E6280618-D2EA-48D8-9CCA-D50BCCDBCD62}', u'ARPURLUPDATEINFO': u'http://www.pdf24.org', u'ProductVersion': u'8.6.1', u'ErrorDialog': u'ErrorDlg', u'EXEUNINSTALL': u'False', u'WixUIRMOption': u'UseRM', u'UPDATEMODE': u'1', u'DESKTOPICONS': u'Yes', u'ProductName': u'PDF24 Creator', u'InstallMode': u'Complete'}


 wapt-get list-registry pdf24
 
     ## me retourne :
     
UninstallKey                           Software        Version      Uninstallstring
------------------------------------------------------------------------------------------------------------------------
{E6280618-D2EA-48D8-9CCA-D50BCCDBCD62} PDF24 Creator   8.6.1        MsiExec.exe /I{E6280618-D2EA-48D8-9CCA-D50BCCDBCD62}
Cosa ho già provato:

* Cerca una soluzione nella documentazione di Wapt: https://www.wapt.fr/fr/doc/Frequent-pro ... s-not-good

* Ho provato a forzare la versione nel comando

Codice: Seleziona tutto

    versionsoft = control['version'].split('-',1)[0]
    def getversionpdf24(key):
        return get_msi_properties('pdf24-creator-%s.msi' %versionsoft)['ProductVersion']
    install_msi_if_needed('pdf24-creator-%s.msi' %versionsoft, 'AUTOUPDATE=[No] DESKTOPICONS=[No] FAXPRINTER=[No] /[QN]',get_version=getversionpdf24, killbefore=['pdf24.exe'])

Qualcuno ha qualche idea?
Grazie in anticipo


Sistema:
* Server Wapt Windows 7 a 64 bit
* Macchina per la creazione del pacchetto: Win7 64-bit / pyscripter

PS1: Argomenti per il programma di installazione con MSI: https://help.pdf24.org/it/forum/argomento/ ... -argomenti
https://help.pdf24.org/it/forum/argomento/ ... -argomenti

P.S.: In alternativa, so che c'è PDF Creator nel repository WAPT, ma mi infastidisce perché mi chiede continuamente di installare un altro programma ogni volta che stampo. Personalmente, trovo PDF24 più pulito

PS3: Ho provato a usare altri script come ispirazione per la funzione update_package(), ma non sono riuscito a trovare una soluzione. Se qualcuno ha qualche idea per aiutarmi a procedere, gliene sarei grato :D

Re: Problema nella creazione del pacchetto: PDF24

Pubblicato: 24 ottobre 2018 - 15:08
di dcardon
Ciao DominiqueG,
DominiqueG ha scritto: 24 ott 2018 - 03:59

Codice: Seleziona tutto

    versionsoft = control['version'].split('-',1)[0]
    def getversionpdf24(key):
        return get_msi_properties('pdf24-creator-%s.msi' %versionsoft)['ProductVersion']
    install_msi_if_needed('pdf24-creator-%s.msi' %versionsoft, 'AUTOUPDATE=[No] DESKTOPICONS=[No] FAXPRINTER=[No] /[QN]',get_version=getversionpdf24, killbefore=['pdf24.exe'])
Nella riga `install_msi_if_needed`, "properties" è una variabile denominata. Se "properties" viene omesso, diventa una variabile posizionale e sostituisce il numero min_version. Ed è noto che AUTOUPDATE > 8.6.1...

Codice: Seleziona tutto

install_msi_if_needed('pdf24-creator-8.6.1.msi', properties={'AUTOUPDATE':'[No]','DESKTOPICONS':'No','FAXPRINTER':'[No]'})
Se hai diversi pacchetti interessanti, puoi creare il tuo repository personale, come ha fatto Simon con le web ants. Tutto ciò che ti serve è un server web e generare un file Packages. Per generare il file indice Packages, ti serve lo strumento wapt-scanpackages.py; prima era incluso nel pacchetto tis-waptrepo, ma ora è incluso direttamente nel pacchetto tis-waptserver. Vale la pena dargli un'occhiata.

Sinceramente,

Denis

Re: [RISOLTO] Problema di creazione del pacchetto: PDF24

Pubblicato: 26 ottobre 2018 - 06:43
di DominiqueG
Ciao @dcardon

Nilkel, funziona alla grande, :D grazie mille.

Per quanto riguarda il codice, proverò a farlo, ma penso che pubblicherò lo script su un repository Git.

A proposito, per darti un po' di contesto, sto lavorando su una nave che posa cavi sottomarini in tutto il mondo. Mentre questi cavi, una volta operativi, supereranno facilmente 1 terabyte al secondo per coppia di fibre, a bordo siamo bloccati con una misera connessione internet satellitare, circa 256K per circa 30 workstation...

È incredibilmente lenta, e tutto questo per dire che gestire gli aggiornamenti dei programmi (oltre alla loro installazione centralizzata) è una vera sfida, e la tua soluzione è particolarmente interessante.

Per il momento, sto solo riscrivendo i pacchetti in modo che includano sia gli installer a 64 bit che a 32 bit. Ma quando ne saprò di più, condividerò tutto.

A proposito, se qualcuno trova un modo per creare una funzione `update()` per questo pacchetto, sarei interessato.

Il link per il download è semplice: https://www.pdf24.org/products/pdf-crea ... reator.msi,
ma ho difficoltà a impostare il controllo automatico della presenza di una nuova versione prima di avviare il download.

Cordiali saluti,
Dominique