Slackbuild per JDownloader

Se avete problemi con l'installazione e la configurazione di Slackware postate qui. Non usate questo forum per argomenti generali... per quelli usate Gnu/Linux in genere.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Slackware, se l'argomento è generale usate il forum Gnu/Linux in genere.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Vic Steele
Linux 3.x
Linux 3.x
Messaggi: 534
Iscritto il: dom 27 apr 2008, 13:46
Nome Cognome: Luigi Caiazza
Slackware: current x86_64
Kernel: 3.0.0
Desktop: Fluxbox / KDE 4.7.0
Distribuzione: Fedora 15
Località: Potenza
Contatta:

Slackbuild per JDownloader

Messaggio da Vic Steele »

Ciao a tutti.
In 10 minuti di tempo libero ho creato uno slackbuild per JDownloader:

Codice: Seleziona tutto

#!/bin/sh

CWD=`pwd`
TMP=${TMP:-/tmp/txz}
PKG=$TMP/package-jdownloader

# Script for automatic JDownloader setup
# Author: Luigi Caiazza

NAME=jdownloader
FILENAME=JDownloader
INSTALLDIR=/usr/share
VERSION=1.0
ARCH=${ARCH:-noarch}
BUILD=1lc

if [ ! -d $TMP ]; then
  mkdir -p $TMP
fi
if [ ! -d $PKG ]; then
 mkdir -p $PKG
fi

rm -rf $PKG
mkdir -p $PKG
cd $PKG

mkdir -p $PKG/$INSTALLDIR
unzip $CWD/$FILENAME.zip -d $PKG/$INSTALLDIR
rm -rf $PKG/$INSTALLDIR/$FILENAME/tools/Windows $PKG/$INSTALLDIR/$FILENAME/tools/mac $PKG/$INSTALLDIR/$FILENAME/*.exe $PKG/$INSTALLDIR/$FILENAME/*.bat
chmod 777 $PKG/$INSTALLDIR/$FILENAME

mkdir -p $PKG/usr/bin
cat <<EOF > $PKG/usr/bin/$NAME
#!/bin/sh
java -Xmx512m -jar $INSTALLDIR/JDownloader/JDownloader.jar
EOF
chmod +x $PKG/usr/bin/$NAME

mkdir -p $PKG/usr/share/icons/
cp -a $PKG/$FILENAME/jd/img/logo/logo_20_20.png $PKG/usr/share/icons/jdownloader.png

mkdir -p  $PKG/usr/share/applications
cat << EOF > $PKG/usr/share/applications/$NAME.desktop
[Desktop Entry]
Type=Application
Encoding=UTF-8
Name=JDownloader
GenericName=Java Download Manager
GenericName[it]=Download Manager in Java
Comment=An open source download manager
Comment[it]=Un download manager open source
Icon=jdownloader.png
Exec=jdownloader
Terminal=false
Categories=Application;Network;
EOF

mkdir -p $PKG/usr/doc/$NAME-$VERSION
mkdir $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
cat $CWD/slack-desc > $PKG/usr/doc/$NAME-$VERSION/slack-desc
cat $CWD/$NAME.SlackBuild > $PKG/usr/doc/$NAME-$VERSION/$NAME.SlackBuild
cd $PKG
chown -R root:root .
makepkg -l y -c n $CWD/$NAME-$VERSION-$ARCH-$BUILD.txz

if [ "$1" = "--cleanup" ]; then
 rm -rf $PKG
fi
Per renderlo il più possibile portabile (e quindi non si può mettere nella home, che è legata al nome utente) l'ho fatto installare in /usr/share. Essendoci però il problema di dover rendere scrivibile la dir (per gli aggiornamenti del software e delle configurazioni), non sono riuscito a risolvere in altro modo che con chmod 777.
Volevo chiedervi se avete idea di una soluzione più pulita, e intanto spero di aver fatto qualcosa che vi possa piacere.
Il file .zip a cui lo slackbuild è legato è: http://ul.to/06q3lm .

Grazie.

Avatar utente
Blallo
Packager
Packager
Messaggi: 3302
Iscritto il: ven 12 ott 2007, 11:37
Nome Cognome: Savino Liguori
Slackware: 14.2 / 12.2
Kernel: 4.4.14-smp
Desktop: DWM
Località: Torino / Torremaggiore (FG)
Contatta:

Re: Slackbuild per JDownloader

Messaggio da Blallo »

Buttalo in /opt, secondo me è più pulita la cosa

Vic Steele
Linux 3.x
Linux 3.x
Messaggi: 534
Iscritto il: dom 27 apr 2008, 13:46
Nome Cognome: Luigi Caiazza
Slackware: current x86_64
Kernel: 3.0.0
Desktop: Fluxbox / KDE 4.7.0
Distribuzione: Fedora 15
Località: Potenza
Contatta:

Re: Slackbuild per JDownloader

Messaggio da Vic Steele »

Basta modificare solo la variabile INSTALLDIR, che ho fatto apposta per rendere più istantaneo questo tipo di modifica.
Il discorso è che il problema di permessi si verificherebbe anche lì, giusto? Come risolverlo efficacemente oltre a chmod 777?

Avatar utente
Blallo
Packager
Packager
Messaggi: 3302
Iscritto il: ven 12 ott 2007, 11:37
Nome Cognome: Savino Liguori
Slackware: 14.2 / 12.2
Kernel: 4.4.14-smp
Desktop: DWM
Località: Torino / Torremaggiore (FG)
Contatta:

Re: Slackbuild per JDownloader

Messaggio da Blallo »

credo li puoi assegnare tranquillamente, non vedo il problema

Vic Steele
Linux 3.x
Linux 3.x
Messaggi: 534
Iscritto il: dom 27 apr 2008, 13:46
Nome Cognome: Luigi Caiazza
Slackware: current x86_64
Kernel: 3.0.0
Desktop: Fluxbox / KDE 4.7.0
Distribuzione: Fedora 15
Località: Potenza
Contatta:

Re: Slackbuild per JDownloader

Messaggio da Vic Steele »

Ottimo allora. Credevo di essere stato troppo drastico.
C'è qualcosa che modificheresti?

Avatar utente
Blallo
Packager
Packager
Messaggi: 3302
Iscritto il: ven 12 ott 2007, 11:37
Nome Cognome: Savino Liguori
Slackware: 14.2 / 12.2
Kernel: 4.4.14-smp
Desktop: DWM
Località: Torino / Torremaggiore (FG)
Contatta:

Re: Slackbuild per JDownloader

Messaggio da Blallo »

gli aggiungerei il download automatico dell'archivio di JDownloader

hashbang
Packager
Packager
Messaggi: 2034
Iscritto il: ven 4 giu 2010, 10:27

Re: Slackbuild per JDownloader

Messaggio da hashbang »

Codice: Seleziona tutto

if [ ! -d $TMP ]; then
  mkdir -p $TMP
fi
if [ ! -d $PKG ]; then
 mkdir -p $PKG
fi

rm -rf $PKG
mkdir -p $PKG
scusa ma non ho capito il senso di questa parte :-k Secondo lo script tu controlli la presenza della directory rappresentata dalla variabile $TMP e della directory rappresentata dalla variabile $PKG e se non sono presenti vengono create. Poi però ordini di cancellare la directory della variabile $PKG e la ricrei. Scusami ma non ha molto senso.
conviene dare un:

Codice: Seleziona tutto

rm -rf $TMP
rm -rf $PKG
mkdir -p $TMP $PKG
se invece $PKG è contenuta in $TMP potresti dare

Codice: Seleziona tutto

rm -rf $TMP
mkdir -p $TMP $PKG
così ordini di cancellare a priori la directory di compilazione e di ricrearla insieme alla directory temporanea di pacchettizzazione. Il tutto diventa più pulito e sicuro perchè in caso di una cattiva costruzione del pacchetto non hai bisogno di eliminare a mano le directories perchè lo farà lo SlackBuild.
Se invece non vuoi toccare la directory di compilazione

Codice: Seleziona tutto

if [ -d $TMP ]; then
  mkdir -p $TMP
fi
cd $TMP # Solo se $PKG è contenuta in $TMP
rm -rf $PKG
mkdir -p $PKG

Vic Steele
Linux 3.x
Linux 3.x
Messaggi: 534
Iscritto il: dom 27 apr 2008, 13:46
Nome Cognome: Luigi Caiazza
Slackware: current x86_64
Kernel: 3.0.0
Desktop: Fluxbox / KDE 4.7.0
Distribuzione: Fedora 15
Località: Potenza
Contatta:

Re: Slackbuild per JDownloader

Messaggio da Vic Steele »

Hai perfettamente ragione, non me lo spiego nemmeno io.
Avevo fatto più di qualche prova perché non è proprio una compilazione di sorgenti, ma veri e propri file "eseguibili" (bytecode) che in teoria si dovrebbero solo decomprimere e avviare, con in più il problema dei permessi (se non hai il permesso di scrivere nella directory di deploy, l'applicazione non si avvia nemmeno).
Devo essermi dimenticato di cancellare qualcosa, credo sia l'unica spiegazione che posso dare.

metrofox
Linux 3.x
Linux 3.x
Messaggi: 760
Iscritto il: gio 7 ago 2008, 12:29
Slackware: slackware64-current
Kernel: 3.4.4-ck3
Desktop: FluxBox-1.3.1
Distribuzione: FreeBSD-8.1(amd64)
Località: London

Re: Slackbuild per JDownloader

Messaggio da metrofox »

Io tempo fa creai un pacchetto e lo resi disponibile proprio qui su slacky.eu con tutto il *.tgz ai tempi... Non so che fine abbia fatto però :-D

Vic Steele
Linux 3.x
Linux 3.x
Messaggi: 534
Iscritto il: dom 27 apr 2008, 13:46
Nome Cognome: Luigi Caiazza
Slackware: current x86_64
Kernel: 3.0.0
Desktop: Fluxbox / KDE 4.7.0
Distribuzione: Fedora 15
Località: Potenza
Contatta:

Re: Slackbuild per JDownloader

Messaggio da Vic Steele »

Davvero? Come lo avevi gestito?

metrofox
Linux 3.x
Linux 3.x
Messaggi: 760
Iscritto il: gio 7 ago 2008, 12:29
Slackware: slackware64-current
Kernel: 3.4.4-ck3
Desktop: FluxBox-1.3.1
Distribuzione: FreeBSD-8.1(amd64)
Località: London

Re: Slackbuild per JDownloader

Messaggio da metrofox »

Allo stesso modo in cui lo stai gestendo più, forse un poco in maniera più pulita, ma comunque è normale, basta rivedere un po il codice e provarlo sulla proprio macchina e poi raggiungi un buon stato dello script, ora che hai aggiustato quel blocco di if(che comunque si trova forse o negli script di gohanz o in quelli di loris) dovrebbe andare bene, comunque sarebbe infatti meglio se installassi tutto in /opt

Vic Steele
Linux 3.x
Linux 3.x
Messaggi: 534
Iscritto il: dom 27 apr 2008, 13:46
Nome Cognome: Luigi Caiazza
Slackware: current x86_64
Kernel: 3.0.0
Desktop: Fluxbox / KDE 4.7.0
Distribuzione: Fedora 15
Località: Potenza
Contatta:

Re: Slackbuild per JDownloader

Messaggio da Vic Steele »

Eccolo dopo le modifiche:

Codice: Seleziona tutto

#!/bin/sh

CWD=`pwd`
TMP=${TMP:-/tmp/txz}
PKG=/tmp/package-jdownloader

# Script for automatic JDownloader setup
# Author: Luigi Caiazza

# You can download zip package from:
# http://ul.to/06q3lm

NAME=jdownloader
FILENAME=JDownloader
INSTALLDIR=/opt
VERSION=1.0
ARCH=${ARCH:-noarch}
BUILD=1lc

rm -rf $PKG
rm -rf $TMP
mkdir -p $TMP $PKG
cd $PKG

mkdir -p $PKG/$INSTALLDIR
unzip $CWD/$FILENAME.zip -d $PKG/$INSTALLDIR
rm -rf $PKG/$INSTALLDIR/$FILENAME/tools/Windows $PKG/$INSTALLDIR/$FILENAME/tools/mac $PKG/$INSTALLDIR/$FILENAME/*.exe $PKG/$INSTALLDIR/$FILENAME/*.bat
chmod 777 $PKG/$INSTALLDIR/$FILENAME

mkdir -p $PKG/usr/bin
cat <<EOF > $PKG/usr/bin/$NAME
#!/bin/sh
java -Xmx512m -jar $INSTALLDIR/JDownloader/JDownloader.jar
EOF
chmod +x $PKG/usr/bin/$NAME

mkdir -p $PKG/usr/share/icons/
cp -a $PKG/$FILENAME/jd/img/logo/logo_20_20.png $PKG/usr/share/icons/jdownloader.png

mkdir -p  $PKG/usr/share/applications
cat << EOF > $PKG/usr/share/applications/$NAME.desktop
[Desktop Entry]
Type=Application
Encoding=UTF-8
Name=JDownloader
GenericName=Java Download Manager
GenericName[it]=Download Manager in Java
Comment=An open source download manager
Comment[it]=Un download manager open source
Icon=jdownloader.png
Exec=$NAME
Terminal=false
Categories=Application;Network;
EOF

mkdir -p $PKG/usr/doc/$NAME-$VERSION
mkdir $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
cat $CWD/slack-desc > $PKG/usr/doc/$NAME-$VERSION/slack-desc
cat $CWD/$NAME.SlackBuild > $PKG/usr/doc/$NAME-$VERSION/$NAME.SlackBuild
cd $PKG
chown -R root:root .
makepkg -l y -c n $CWD/$NAME-$VERSION-$ARCH-$BUILD.txz

if [ "$1" = "--cleanup" ]; then
 rm -rf $PKG
fi
Ho tagliato la testa al toro e tirato fuori la directory del package da quella di estrazione.
Avevo anche commesso un piccolo errore nella chiamata dell'Exec dal collegamento del menu: chiama il bin che ho costruito poco prima, ma l'ho chiamato $NAME e non jdownloader. Se la variabile cambiasse sarebbe un link morto.
Il download automatico purtroppo non è possibile perché il mirror principale non punta a un URL fisso, ma a uno generato su uploaded.to. Ho messo un commento con quello più diretto possibile.

hashbang
Packager
Packager
Messaggi: 2034
Iscritto il: ven 4 giu 2010, 10:27

Re: Slackbuild per JDownloader

Messaggio da hashbang »

Ti consiglio di aggiungere il controllo delle dipendeze del pacchetto con requiredbuilder....uno strumento indispensabile per noi pacchettizzatori. Con questo potrai vedere se la tua opera risulta pulita o "sporca" di qualche pacchetto che non c'entra. Requiredbuilder lo trovi sul repo di Slackware 13.1 32 bit

metrofox
Linux 3.x
Linux 3.x
Messaggi: 760
Iscritto il: gio 7 ago 2008, 12:29
Slackware: slackware64-current
Kernel: 3.4.4-ck3
Desktop: FluxBox-1.3.1
Distribuzione: FreeBSD-8.1(amd64)
Località: London

Re: Slackbuild per JDownloader

Messaggio da metrofox »

Dipendenze su un software scritto in java? Mmm :)

Avatar utente
Blallo
Packager
Packager
Messaggi: 3302
Iscritto il: ven 12 ott 2007, 11:37
Nome Cognome: Savino Liguori
Slackware: 14.2 / 12.2
Kernel: 4.4.14-smp
Desktop: DWM
Località: Torino / Torremaggiore (FG)
Contatta:

Re: Slackbuild per JDownloader

Messaggio da Blallo »

metrofox ha scritto:Dipendenze su un software scritto in java? Mmm :)
beh, la jre la chiede

Rispondi