Newsgroup: it.comp.os.linux.software
Titolo: pdftk 1.44 statificato (test)

cari utilizzatori di Linux, salutandovi *indistintamente*, vi chiedo, se 
volete, di aiutarmi a determinare se riuscite a usare, nella vostra 
distribuzione, questa versione di pdftk che ho compilato in Puppy Linux 
3.01 
 
- 
http://www.fileden.com/files/2008/3/19/1824460/pdftk-static.tar.bz2
 
 
con 
 
- gcc 4.1.2
- gcj 4.1.2 (4 ore solo per compilarlo)
 
e che ho poi *statificato*, (cioè inglobato l'eseguibile in C e la sua 
pesante libreria da cui dipende, libgcj.so.7.0.0 [21 MB], in un unico file 
eseguibile), con
 
*statifier*
- 
http://statifier.sourceforge.net/statifier/background.html
 
 
che è la controparte gratuita e libera di *magicermine* per impacchettare 
gli eseguibili in un unico file con tutte le dipendenze (tecnica che si 
adotta quando, come nel caso di pdftk, non si riesce a compilare una 
versione statica nel modo tradizionale da sorgente)
 
per testare l'eseguibile di pdftk, basta scompattarlo
 
tar -xjf pdftk-static.tar.bz2
 
./pdftk-static --help
 
se mostra l'help a terminale, al 99% funziona
 
questa versione statificata è stata approntata con la speranza di poter 
fornire un eseguibile di pdftk funzionante per tutte quelle distribuzioni 
che non ne hanno una precompilata, ed essendo la compilazione di pdftk 
cosa notoriamente poco agevole, sarebbew bello poter dire di aver trovato 
una versione universalmente eseguibile 
 
in teoria, infatti, essendo la libreria inglobata nell'eseguibile, tutte 
le chiamate del programma a quella, avverrebbero dalla libreria inglobata, 
esiste però la possibilità di incompatibilità, essendo statifier in 
generale meno ricco di funzioni ed affidabile di magicermine (che costa 
però)
 
se qualcuno vuole provarlo, lasci scritto per favore l'esito del test e la 
distribuzione usata. grazie
 
-- 
Puppy Linux wiki:  
http://dokupuppylinux.co.cc
 
Puppy Linux Forum: 
http://www.italianpuppy.org/
 
Windows me genuit, Ubuntu rapuere / tenet nunc Puppy Linux...
invito dropbox 2GB free - 
http://db.tt/Vc6IeN4
 

 se mostra l'help a terminale, al 99% funziona
 
 
guglielmo@guglielmo-tornado-desktop ~/Scaricati $ ./pdftk-static --help
 
pdftk 1.44 a Handy Tool for Manipulating PDF Documents
Copyright (C) 2003-10, Sid Steward - Please Visit: 
www.pdftk.com
 
This is free software; see the source code for copying conditions. There is
NO warranty, not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR 
PURPOSE.
 
SYNOPSIS
        pdftk <input PDF files | - | PROMPT>
	    [ input_pw <input PDF owner passwords | PROMPT> ]
	    [ <operation> <operation arguments> ]
	    [ output <output filename | - | PROMPT> ]
	    [ encrypt_40bit | encrypt_128bit ]
	    [ allow <permissions> ]
<cut>
 
 
Sembra che funzioni.
 
 
guglielmo@guglielmo-tornado-desktop ~ $ uname -a
Linux guglielmo-tornado-desktop 3.2.0-23-generic #36-Ubuntu SMP Tue Apr 
10 20:39:51 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux
 
 
guglielmo@guglielmo-tornado-desktop ~ $ lsb_release -a
LSB Version: 
core-2.0-amd64:core-2.0-noarch:core-3.0-amd64:core-3.0-noarch:core-3.1-amd64:core-3.1-noarch:core-3.2-amd64:core-3.2-noarch:core-4.0-amd64:core-4.0-noarch
Distributor ID:	LinuxMint
Description:	Linux Mint 13 Maya
Release:	13
Codename:	maya
 
 
-- 
Ciao, Guglielmo.

 Sembra che funzioni.
 
Epperò adesso che ho un po' di tempo ho provato a modificare un paio di 
pdf e qualunque comando passo (presi paro paro da Pdftk Examples sul 
sito) il terminale mi risponde:
 
Errore di segmentazione (core dump creato)
 
Forse perché si tratta di sistema a 64 bit?
 
-- 
Ciao, Guglielmo.

 Forse perché si tratta di sistema a 64 bit?
[...]
forse. hai un sistema a 32 bit con cui fare una controprova? Grazie per la 
pazienza e il contributo
 
secondo ldd, oltre a libgcj.so.7, pdftk effettua chiamate a
 
        linux-gate.so.1 =>  (0xffffe000)
        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb7e4a000)
        libm.so.6 => /lib/libm.so.6 (0xb7e23000)
        libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0xb7e18000)
        libc.so.6 => /lib/libc.so.6 (0xb7cd5000)
        /lib/ld-linux.so.2 (0xb7f35000)
 
statifier dovrebbe dunque impacchettare il tutto in un unico eseguibile 
per poter rendere pdftk portabile in ogni ambiente linux, ma talvolta ci 
possono essere problemi. se la segmentazione si ripresenta anche su un 
sistema a 32 bit, cercherò di ottenere una licenza di sviluppo in prova 
gratis da magicermine e ripetere l'esperimento di statificazione e se 
anche questo metodo non funzionasse, aggiungere intanto la versione 
linkata dinamicamente a libgcj.so.7 compilata per tutte le versioni di 
Puppy Linux dalla 3.01 alla attuale, e poi cercare un nuovo metodo per 
compilare staticamente da sorgente pdftk (il vecchio metodo non funziona 
con la versione 1.44 che ha un paio di interessanti nuove caratteristiche
 
- multistamp
- multibackground
- shuffle
 
quest'ultima funzione permette, avendo due pdf, di aggiungere, in un nuovo 
pdf risultante, alternatamente, pagina 1 dal primo, pagina 1 dal secondo, 
ecc... funzione che in mancanza di pdftk 1.44 emulavo con questo mio 
script, utile soprtattutto per montare edizioni con testo a fronte
 
interleave pdf pages (parallel text extended)
- 
http://pastebin.com/P9uc84Ya
 


 Errore di segmentazione (core dump creato)
[...]
questa altra versione statificata è stata creata con ErminePro ( le 
applicazioni create con la versione demo di ErminePro funzionano per 31 
giorni), giusto per un test comparativo
 
- 
http://alturl.com/6dv73
 



 
OK, adesso funziona con pdf creati da me con libreoffice. Cioè ho unito 
due pdf multipagine ed è andato tutto a posto.
 
Poi ho provato con un pdf relativo al manuale dello scanner ed in questo 
caso non riesce ad unirlo ai precedenti dicendomi:
pdftk-statified.ermine: was packed with Ermine Trial and should be used 
for evaluation only.
pdftk-statified.ermine: license will expire in 30 day(s)
Error: Failed to open PDF file:
    scanner.pdf
    OWNER PASSWORD REQUIRED, but not given (or incorrect)
Errors encountered.  No output created.
Done.  Input errors, so no output created.
 
 
Il fatto è che non mi risulta nessuna password su quel file, cioè si 
apre tranquillamente senza richiederne.
 
 
<edit in tempo reale>
Ora sto provando ad unire un altro file pdf relativo ad un catalogo 
viaggi... ed è andato tutto bene. OK, penso che il programma come l'hai 
impacchettato ora mi funzioni anche sul sistema a 64 bit, sarà quel file 
con qualche stranezza.
 
 
-- 
Ciao, Guglielmo.

 sul sistema a 64 bit
[...]
guardando nella tabella di comparazione in fondo a questa pagina:
 
http://magicermine.com/products.html
 
 
statifier (free) manca di alcune funzionalità presenti in Ermine Ligt e 
soprattutto Pro (con la cui versione di prova ho prodotto questo secondo 
eseguibile statificato a partire dalla versione dinamica compilata)
 
se il problema con quel pdf riottoso si dimostrasse essere dovuto alla 
presenza di *restrizioni* o alla *malformazione* del file, vorrebbe dire 
che ErminePro è il software giusto per produrre un eseguibile universale 
binario di pdftk e si tratterebbe solo di vedere se la casa produttrice 
vorrà concedermi una licenza gratis (dicono di voler sostenere 
l'opensource) per poter statificare pdftk o almeno farmi un prezzo 
ragionevole
 
grazie per i test, se vorrai verificare lo stato di quel file che chiedeva 
la password, ringrazio già da ora per il tempo dedicato, giusto per capire 
se vale la pena di acquisire la licenza di magicermine


 grazie per i test,
 
De nada :)
 
 
-- 
Ciao, Guglielmo.

 Encrypted:      yes (print:yes copy:yes change:no addNotes:no) 
[...]
quindi ora posso chiedere a magicermine il prezzo di una licenza di 
ErminePro (o convincere l'autore di pdftk a richiederne una gratis in 
quanto sviluppatore) così potrà rendere disponibile un eseguibile binario 
universale del suo programma
 
la compilazione infatti è stata un incubo, non tanto in sé, ma per la 
necessità di compilare prima l'ambiente gcj, processo lungo assai con un 
bootstrap preliminare


 bootstrap preliminare
 
Non mi sono mai interessato della questione (ci sono i repositories per
questo).
Tuttavia perch� non basta "apt-get build-dep pdftk"?
� pi� che altro una curiosit�...
 
-- 
Lurkos
 

 perché non basta "apt-get build-dep pdftk"?
[...]
la spiegazione l'ho data praticamente più sopra: non ci sono automatismi, 
per essere sicuri di avere tutte le dipendenze soddisfatte, occorre 
leggere (in Puppy come in altre distribuzioni senza automatismi) i file 
che accompagnano i sorgenti
 
o, se non vi sono informazioni al riguardo, interpretare l'output del 
compilatore, talvolta chiaro, altre volte oscuro
 
se sei fortunato, e il codice sorgente è munito di script di 
configurazione,
 
./configure ti avverte di dipendenze non soddisfatte
 
tu allora (cioè io) scarichi i sorgenti della/delle dipendenze, compili e 
prosegui (tipicamente compilo a tappe i programmi con molte dipendenze)
 
altre volte l'errore te lo dà il compilatore
 
undefined reference riferito a libpng? forse va aggiunto, nel makefile, in 
LIBS, -lpng (successomi con la compilazione dell'encoder jbig2enc, scritto 
da Adam Langley per codificare in formato ultracompresso jbig2 in modalità 
binaria monocromatica, le scansioni di libri di googlebooks)
 
undeclared function? (o la si dichiara oppure si commenta la riga e si va 
avanti, una delle due opzioni funziona sempre, ho compilato una versione 
perfettamente funzionante del gestore degli appunti -clipboard - parcelite 
così)
 
concludo, conscio di essere stato troppo verboso, ribadendo la necessità 
di un eseguibile binario universale per pdftk 1.44 (che ha diverse nuove 
interessanti funzioni), dato che ho notato esservi difficoltà con certe 
versioni di gcc (la versione di gcj deve essere ovviamente la stessa) a 
compilare pdftk
 
ne parlerò prossimamente con Sid Stewart quando proporrò di includere 
sulla pagina principale del suo sito il link alla versione dinamica di 
pdftk 1.44, compilata in puppy 3.01 (funziona in Puppy 4.2.1, 4.3.1, 5.2.5 
ecc... ed ho ragione di credere che funzioni in ogni versione futura) e 
discuterò sulla possibilità che richieda una licenza Pro di magicermine 
(che potrebbero rilasciare gratuitamente, dato che affermano di voler 
sostenere il software free- sarebbe tutta pubblicità per loro), se non 
potessero concederla a me che ho semplicemente compilato una versione 
dinamica da sorgente
 
così da poter offrire l'eseguibile binario universale per 
Linux di pdftk (e che funzioni si è dimostrato con la versione di prova di 
magicermine Pro che ho usato per statificare la versione compilata in 
puppy e che stando alle risultante dei precedenti messaggi di questo 
thread, ha funzionato su Ubuntu e Mint)
 
ma che è, masochismo? Qualcuno potrebbe dire, forse un po' lo è, ma a 
parte il fatto che fa bene spremersi le meningi a chi proviene da windows 
(quod facit torpescere ingenium), se ha l'agio e il tempo di imparare 
linux, se tutti usassero le stesse distribuzioni vi sarebbe forse più 
ordine, ma anche monotonia e ad ogni modo, l'utilizzatore di Suse, RedHat, 
anche Ubuntu (suvvia), se non mio fratello, posso senz'altro dirlo cugino, 
sempre parte della famiglia fa


 non la offre)
 
Rispetto pienamente le opinioni altrui, ma in questo caso non condivido.
L'approccio di fornire un binario sul sito di un programma open source
secondo me è da evitare, perché è contro la stessa filosofia del
Filesystem Hierarchy Standard.
La cosa giusta a mio avviso è fornire i sorgenti e le istruzioni
dettagliate per la compilazione.
È poi cosa buona e giusta l'automatismo della distribuzione, perché
previene il rischio di trovarsi con versioni obsolete, magari con
bachi di sicurezza.
Certo, una volta nella vita bisogna passare da Linux From Scratch
(ancora non ho avuto tempo purtroppo), ma a livello pratico ha solo
senso per sistemi embedded.
La ricompilazione del kernel, invece, è discorso a parte (vedi ad
esempio make-kpkg).
 
-- 
Lurkos