Pagina 1 di 1

slackbuild delucidazioni e test

Inviato: dom 10 giu 2007, 1:26
da stan
Ciao a tutti.
Ho letto i due docs nella slackypedia e il capitolo di S4D.
E' uno dei miei primi slackBuilds e desidererei delle delucidazioni.
Il programma e' http://ri-li.sourceforge.net/.

1) Io copio i files README, COPYING, COPYING.Music NEWS ecc. in /usr/doc/Ri-li-2.0.0 ma ho visto che il make install copia COPYING.Music in /usr/share/Ri-li/.
Quindi quando uno installa il mio tgz si trova due COPYING.Music sul filesystem (uno messo correttamente da me in /usr/doc/Ri-li-2.0.0 e l'altro messo automaticamente dal make install in /usr/share/Ri-li/.
Cosa si deve fare in questi casi? Si cancella quello in /usr/share/Ri-li/? Se si, come si fa' in modo corretto?
2) Il make install copia in /usr/share/Ri-li/ anche un file .ebuild per la gentoo....ma noi non ce ne facciamo niente. Va' cancellato? Se si, come si fa' in modo corretto?
3) I binari che vanno in /usr/bin sono di root.root o root.bin?
4) A pagina 184 di S4D per l'interruzione dello SlackBuild c'e'

Codice: Seleziona tutto

if [ $' != 0 ]; then
          exit
         fi
Ma se lo metto lo slackbuild non termina correttamente. Ho cercato velocemente $' ma non ho capito per cosa sta'.
5) A pagina 183 di S4D nel cleanup mi risultano di troppo quei backslash...sbaglio?
6) Potreste provare il mio slackbuild e dirmi se riuscite a far partire il gioco a fullscreen?
7) Complessivamente c'e' qualcosa di non corretto nel mio slackbuild?
Io l'ho provato e mi sembra ok...ma forse voi avete delle osservazioni da farmi...

Codice: Seleziona tutto

#!/bin/sh
#
# Ri-lin package.

NAME=Ri-li
VERSION=2.0.0
ARCH=i486
BUILD=1fr

CWD=`pwd`
if ["$TMP" = ""];then
TMP=/tmp
fi
PKG=$TMP/package-$NAME

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

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

echo "+---------------------------------+"
echo "| Start SlackBuild $NAME-$VERSION |"
echo "+---------------------------------+"

cd $TMP
tar xjfv $CWD/$NAME-$VERSION.tar.bz2
cd $NAME-$VERSION
chown -R root.root .

find . -perm 775 -exec chmod 755 {} \;
find . -perm 777 -exec chmod 755 {} \;
find . -perm 771 -exec chmod 755 {} \;
find . -perm 611 -exec chmod 755 {} \;
find . -perm 555 -exec chmod 755 {} \;
find . -perm 664 -exec chmod 644 {} \;
find . -perm 666 -exec chmod 644 {} \;
find . -perm 600 -exec chmod 644 {} \;
find . -perm 444 -exec chmod 644 {} \;
find . -perm 400 -exec chmod 644 {} \;

CFLAGS="-O2 -march=i486 -mtune=i686" ./configure --prefix=/usr \
						 --disable-debug \
						 --enable-color \

echo "+---------------------------------+"
echo "| Start 'make' |"
echo "+---------------------------------+"
make
#if [ $' != 0 ]; then
#exit
#fi

echo "+---------------------------------+"
echo "| Start Install |"
echo "+---------------------------------+"
make install DESTDIR=$PKG
#if [ $'!=0 ]; then
#exit
#fi

echo "+---------------------------------+"
echo "| Start Documentation |"
echo "+---------------------------------+"
mkdir -p $PKG/usr/doc/$NAME-$VERSION
cp -a \
 AUTHORS COPYING COPYING.Music ChangeLog INSTALL NEWS README \
$PKG/usr/doc/$NAME-$VERSION

echo "+---------------------------------+"
echo "| Start Stripping |"
echo "+---------------------------------+"
( cd $PKG
find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip \
		--strip-unneeded 2> /dev/null
find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip \
		--strip-unneeded 2> /dev/null
find . -type f -name "*.a" | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip \
		--strip-unneeded 2> /dev/null
)

gzip -9 $PKG/usr/man/*/*
gzip -9 $PKG/usr/info/*

chown -R root.root $PKG/usr/bin

mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc

cd $PKG
makepkg -l y -c n $TMP/$NAME-$VERSION-$ARCH-$BUILD.tgz

echo "+---------------------------------+"
echo "| Start cleaning |"
echo "+---------------------------------+"
if [ "$1" = "--cleanup" ]; then
rm -rf $TMP/$NAME-$VERSION
rm -rf $PKG
fi
Grazie per le risposte ;)

Inviato: dom 10 giu 2007, 9:29
da slucky
Scusa, ma con questo tool nativo di Slack è possibile anche crearsi i pacchetti del kernel? oltre a crearsi i pacchetti dei programmi?

Ciao :D

Inviato: dom 10 giu 2007, 9:57
da stan
Ciao slucky :)
Lo slackbuild altro non e' che uno script di shell.
Tramite lo slackbuild si 'simula' l'installazione di un pacchetto a partire da sorgenti e si eseguono delle operazioni che permettono di creare un file.tgz che rispetti le regole slackware.
Per 'rispetti le regole slackware' intendo ad esempio che si sistemano i permessi dei file, si sistemano i percorsi in cui andranno a finire i binari ecc.
Tutto cio' per ottenere alla fine un pacchetto con estensione tgz che verra' poi installato tramite installpkg.
A parte la digressione...essendo uno script di shell si puo' creare un tgz di qualunque cosa si abbia i sorgenti. Ovviamente con le opportune modifiche!
Ad esempio ho trovato http://riksun.riken.go.jp/pub/pub/Linux ... SlackBuild

Se ho detto qualche imprecisione prego i molti piu' esperti di me di correggermi.
Comunque se ti interessa l'argomento c'e' un capitolo intero su S4D che spiega come creare pacchetti tgz in modo corretto.
Ci sono inoltre articoli sulla slackypedia.

Inviato: dom 10 giu 2007, 10:07
da LaZyBoY
slucky ha scritto:Scusa, ma con questo tool nativo di Slack è possibile anche crearsi i pacchetti del kernel? oltre a crearsi i pacchetti dei programmi?
Per il kernel prova questo tool di submax82:
http://submax.altervista.org/slackware/kernelpkg.html
ciao

Inviato: dom 10 giu 2007, 10:19
da slucky
Ah........grazie, già conosco il tool del grande submax, con il quale sono in contatto costante (vedi topic kernel: info sulla configurazione :o )........la mia era piuttosto solo curiosità, perchè penso che il mitico Pat li crei con questo tool nativo i pacchetti precompilati del kernel, comunque leggerò quel capitolo del manuale e grazie a voi tutti per le info...........

Ciao e buona Slack!!! :D

Inviato: dom 10 giu 2007, 14:26
da danix
Ciao a tutti...

@ stan:
io di solito quando faccio gli slackbuild invece di usare:

Codice: Seleziona tutto

if [ $' != 0 ]; then
exit
fi 
preferisco fare così che mi sembra anche più semplice:

Codice: Seleziona tutto

make || exit 1
e

Codice: Seleziona tutto

make install DESTDIR=$PKG || exit 1
in questo modo ottieni che se qualcosa va storto nel processo di make e di make install lo script termina in modo pulito restituendoti un exit status di 1 (che in bash equivale a "c'è stato qualche problema e non ho potuto portare a termine il lavoro" al contrario dell'exit status 0 che significa che il lavoro è stato ultimato correttamente).
Neanche io ho capito bene cosa significhi quel ciclo if, ma credo che lo scopo sia lo stesso...

In ogni caso aspetta risposte da utenti più esperti di me per quanto riguarda lo script in se così sapranno chiarirti meglio i dubbi...

A presto...

Re: slackbuild delucidazioni e test

Inviato: dom 10 giu 2007, 14:38
da gioco
stan ha scritto:4) A pagina 184 di S4D per l'interruzione dello SlackBuild c'e'

Codice: Seleziona tutto

if [ $' != 0 ]; then
          exit
         fi
Ma se lo metto lo slackbuild non termina correttamente. Ho cercato velocemente $' ma non ho capito per cosa sta'.
Presumo sia un errore di battitura. Probabilmente al posto del "'" ci deve stare un "?". $? è infatti la variabile che memorizza l'exit status dell'ultimo comando eseguito. Sulla tastiera il "?" si ottiene con "Shift+'", a samiel forse è sfuggito lo Shift.
danix85 ha scritto:Neanche io ho capito bene cosa significhi quel ciclo if, ma credo che lo scopo sia lo stesso...
Il costrutto if non è un ciclo. Si, lo scopo è lo stesso.

Inviato: dom 10 giu 2007, 16:40
da stan
Grazie per le risposte ragazzi!
Sapete per caso darmi una risposta anche alle domande 1, 2 e 3?
In fondo non sono domande complicate, solo che non so come comportarmi!

Non e' che poi riuscireste a provare il tgz e dirmi se vi va' in fullscreen?
Non ho capito se e' necessaria l'acc. grafica o no per fare girare il gioco! Sul sito non c'e' niente.
A me sul sistema con acc. grafica funziona anche fullscreen mentre su una slackware nuda (cioe' appena installata) non mi va' il fullscreen (ho driver vesa).
Grazie ancora

Inviato: dom 10 giu 2007, 17:23
da submax82
slucky ha scritto:Scusa, ma con questo tool nativo di Slack è possibile anche crearsi i pacchetti del kernel? oltre a crearsi i pacchetti dei programmi?

Ciao :D
ma non è tool è IL modo per farli... certo kernelpkg alla fine è una specie di slackbuild evoluto!
.la mia era piuttosto solo curiosità, perchè penso che il mitico Pat li crei con questo tool nativo i pacchetti precompilati del kernel, comunque leggerò quel capitolo del manuale e grazie a voi tutti per le info...........
certo che li crea così... ma non sono completi nel senso che hanno come presupposto un kernel già compilato... non si occupano anche della compilazione.

Pat usa slackbuild solo per kernel, kernel-modules mentre per kernel-headers e kernel-source se lo usa non lo pubblica perchè non sono compresi nei sorgenti di slackware. Anche questi due se si cerca in realtà si trovano per zenwalk e slackintosh e altre...

conclusione se vuoi i pacchetti del kernel usa kernelpkg, se sei curioso

cat /sbin/kernelpkg

i pacchetti non nascono miracolosamente diciamo che lo slackbuild è un modo per tenere traccia di come viene creato un pacchetto e quindi anche un modo "facile" per replicare la procedura alla sucessiva versione del programma che hai impacchettato.

Inviato: dom 10 giu 2007, 18:08
da Loris

Codice: Seleziona tutto

--- ri-li.SlackBuild-orig	2007-06-10 18:14:20.000000000 +0200
+++ ri-li.SlackBuild	2007-06-10 18:12:15.000000000 +0200
@@ -1,8 +1,8 @@
 #!/bin/sh
-#
+# http://ri-li.sourceforge.net/index.html
 # Ri-lin package.
 
-NAME=Ri-li
+NAME=ri-li
 VERSION=2.0.0
 ARCH=i486
 BUILD=1fr
@@ -26,9 +26,9 @@
 echo "+---------------------------------+"
 
 cd $TMP
-tar xjfv $CWD/$NAME-$VERSION.tar.bz2
-cd $NAME-$VERSION
-chown -R root.root .
+tar xjfv $CWD/Ri-li-$VERSION.tar.bz2
+cd Ri-li-$VERSION
+chown -R root:root .
 
 find . -perm 775 -exec chmod 755 {} \;
 find . -perm 777 -exec chmod 755 {} \;
@@ -41,61 +41,49 @@
 find . -perm 444 -exec chmod 644 {} \;
 find . -perm 400 -exec chmod 644 {} \;
 
-CFLAGS="-O2 -march=i486 -mtune=i686" ./configure --prefix=/usr \
-                   --disable-debug \
-                   --enable-color \
+CFLAGS="-O2 -march=i486 -mtune=i686" \
+CXXFLAGS="-O2 -march=i486 -mtune=i686" \
+./configure --prefix=/usr \
+--disable-debug \
+--enable-color \
+--program-prefix="" \
+--program-suffix=""
 
 echo "+---------------------------------+"
 echo "| Start 'make' |"
 echo "+---------------------------------+"
-make
-#if [ $' != 0 ]; then
-#exit
-#fi
+make || exit 1
 
 echo "+---------------------------------+"
 echo "| Start Install |"
 echo "+---------------------------------+"
-make install DESTDIR=$PKG
-#if [ $'!=0 ]; then
-#exit
-#fi
+make install DESTDIR=$PKG || exit 1
 
 echo "+---------------------------------+"
 echo "| Start Documentation |"
 echo "+---------------------------------+"
 mkdir -p $PKG/usr/doc/$NAME-$VERSION
-cp -a \
- AUTHORS COPYING COPYING.Music ChangeLog INSTALL NEWS README \
-$PKG/usr/doc/$NAME-$VERSION
+cp -a AUTHORS COPYING COPYING.Music ChangeLog INSTALL NEWS README $PKG/usr/doc/$NAME-$VERSION
+rm $PKG/usr/share/Ri-li/{Ri-li-2.0.0-r1.ebuild,COPYING.Music}
 
 echo "+---------------------------------+"
 echo "| Start Stripping |"
 echo "+---------------------------------+"
 ( cd $PKG
-find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip \
-      --strip-unneeded 2> /dev/null
-find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip \
-      --strip-unneeded 2> /dev/null
-find . -type f -name "*.a" | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip \
-      --strip-unneeded 2> /dev/null
+  find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
 )
 
-gzip -9 $PKG/usr/man/*/*
-gzip -9 $PKG/usr/info/*
-
-chown -R root.root $PKG/usr/bin
-
 mkdir -p $PKG/install
 cat $CWD/slack-desc > $PKG/install/slack-desc
 
 cd $PKG
-makepkg -l y -c n $TMP/$NAME-$VERSION-$ARCH-$BUILD.tgz
+requiredbuilder -v -y -s $CWD $PKG
+makepkg -l y -c n $CWD/$NAME-$VERSION-$ARCH-$BUILD.tgz
 
 echo "+---------------------------------+"
 echo "| Start cleaning |"
 echo "+---------------------------------+"
 if [ "$1" = "--cleanup" ]; then
-rm -rf $TMP/$NAME-$VERSION
+rm -rf $TMP/Ri-li-$VERSION
 rm -rf $PKG
-fi 
\ No newline at end of file
+fi
\ No newline at end of file
Se ci sono file doppi puoi anche eliminarli, ma se non ti accorgi non accade nulla :)
Ho rivisto un pochino il tuo SlackBuild, guarda il diff.
Il giochino va in fullscreen.

Inviato: dom 10 giu 2007, 20:44
da stan
Ciao Loris,
grazie!
A costo di fare una figuraccia....come applico il diff?
ri-li.SlackBuild-orig e a.diff li ho creati facendo il copia e incolla tramite konqueror.
Facendo semplicemente

Codice: Seleziona tutto

patch ri-li.SlackBuild-orig a.diff
ottengo

Codice: Seleziona tutto

Hunk #3 FAILED at 41.
1 out of 3 hunks FAILED -- saving rejects to file ri-li.SlackBuild-orig.rej
dove il .rej e'

Codice: Seleziona tutto

***************
*** 41,101 ****
  find . -perm 444 -exec chmod 644 {} \; 
  find . -perm 400 -exec chmod 644 {} \; 
   
- CFLAGS="-O2 -march=i486 -mtune=i686" ./configure --prefix=/usr \ 
-                    --disable-debug \ 
-                    --enable-color \ 
   
  echo "+---------------------------------+" 
  echo "| Start 'make' |" 
  echo "+---------------------------------+" 
- make 
- #if [ $' != 0 ]; then 
- #exit 
- #fi 
   
  echo "+---------------------------------+" 
  echo "| Start Install |" 
  echo "+---------------------------------+" 
- make install DESTDIR=$PKG 
- #if [ $'!=0 ]; then 
- #exit 
- #fi 
   
  echo "+---------------------------------+" 
  echo "| Start Documentation |" 
  echo "+---------------------------------+" 
  mkdir -p $PKG/usr/doc/$NAME-$VERSION 
- cp -a \ 
-  AUTHORS COPYING COPYING.Music ChangeLog INSTALL NEWS README \ 
- $PKG/usr/doc/$NAME-$VERSION 
   
  echo "+---------------------------------+" 
  echo "| Start Stripping |" 
  echo "+---------------------------------+" 
  ( cd $PKG 
- find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip \ 
-       --strip-unneeded 2> /dev/null 
- find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip \ 
-       --strip-unneeded 2> /dev/null 
- find . -type f -name "*.a" | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip \ 
-       --strip-unneeded 2> /dev/null 
  ) 
   
- gzip -9 $PKG/usr/man/*/* 
- gzip -9 $PKG/usr/info/* 
-  
- chown -R root.root $PKG/usr/bin 
-  
  mkdir -p $PKG/install 
  cat $CWD/slack-desc > $PKG/install/slack-desc 
   
  cd $PKG 
- makepkg -l y -c n $TMP/$NAME-$VERSION-$ARCH-$BUILD.tgz 
   
  echo "+---------------------------------+" 
  echo "| Start cleaning |" 
  echo "+---------------------------------+" 
  if [ "$1" = "--cleanup" ]; then 
- rm -rf $TMP/$NAME-$VERSION 
  rm -rf $PKG 
- fi --- 41,89 ----
  find . -perm 444 -exec chmod 644 {} \; 
  find . -perm 400 -exec chmod 644 {} \; 
   
+ CFLAGS="-O2 -march=i486 -mtune=i686" \ 
+ CXXFLAGS="-O2 -march=i486 -mtune=i686" \ 
+ ./configure --prefix=/usr \ 
+ --disable-debug \ 
+ --enable-color \ 
+ --program-prefix="" \ 
+ --program-suffix="" 
   
  echo "+---------------------------------+" 
  echo "| Start 'make' |" 
  echo "+---------------------------------+" 
+ make || exit 1 
   
  echo "+---------------------------------+" 
  echo "| Start Install |" 
  echo "+---------------------------------+" 
+ make install DESTDIR=$PKG || exit 1 
   
  echo "+---------------------------------+" 
  echo "| Start Documentation |" 
  echo "+---------------------------------+" 
  mkdir -p $PKG/usr/doc/$NAME-$VERSION 
+ cp -a AUTHORS COPYING COPYING.Music ChangeLog INSTALL NEWS README $PKG/usr/doc/$NAME-$VERSION 
+ rm $PKG/usr/share/Ri-li/{Ri-li-2.0.0-r1.ebuild,COPYING.Music} 
   
  echo "+---------------------------------+" 
  echo "| Start Stripping |" 
  echo "+---------------------------------+" 
  ( cd $PKG 
+   find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null 
  ) 
   
  mkdir -p $PKG/install 
  cat $CWD/slack-desc > $PKG/install/slack-desc 
   
  cd $PKG 
+ requiredbuilder -v -y -s $CWD $PKG 
+ makepkg -l y -c n $CWD/$NAME-$VERSION-$ARCH-$BUILD.tgz 
   
  echo "+---------------------------------+" 
  echo "| Start cleaning |" 
  echo "+---------------------------------+" 
  if [ "$1" = "--cleanup" ]; then 
+ rm -rf $TMP/Ri-li-$VERSION 
  rm -rf $PKG 
+ fi 
Ho letto appunti di inf. libera a riguardo...ma qualche consiglio mi tornerebbe utile... :roll:
I file a.diff e ri-li.SlackBuild-orig sono nella mia home.
Non sono molto abile ad applicare patch....
Grazie...

Inviato: dom 10 giu 2007, 22:12
da slucky
Ma certo submax, sai già che ho usato i tuoi pacchetti per installare il kernel su uno dei miei pc, però ho anche la curiosità di capire come lavora Pat, perchè lui crea i pacchetti del kernel precompilati senza usare software di terze parti come potrebbe essere il tuo tool...........quindi giusto per imparare sempre più cose nuove, poi so benissimo tutto il lavoro che stai facendo da tempo per rendere kernelpkg un tool sempre più perfetto e ottimizzato :D , ma a me piacerebbe poter creare il kernel usando più strumenti, quindi una volta con kernelpkg un'altra compilandolo ed un'altra ancora nel modo in cui lavora il mitico Pat ( prima o poi dovremo fargli una statua ad un uomo così geniale :notworthy: )

Ciao e buona Slack a tutti!!! :D

Inviato: lun 11 giu 2007, 0:10
da submax82
slucky ha scritto:Ma certo submax, sai già che ho usato i tuoi pacchetti per installare il kernel su uno dei miei pc, però ho anche la curiosità di capire come lavora Pat, perchè lui crea i pacchetti del kernel precompilati senza usare software di terze parti come potrebbe essere il tuo tool...........quindi giusto per imparare sempre più cose nuove, poi so benissimo tutto il lavoro che stai facendo da tempo per rendere kernelpkg un tool sempre più perfetto e ottimizzato :D , ma a me piacerebbe poter creare il kernel usando più strumenti, quindi una volta con kernelpkg un'altra compilandolo ed un'altra ancora nel modo in cui lavora il mitico Pat ( prima o poi dovremo fargli una statua ad un uomo così geniale :notworthy: )

Ciao e buona Slack a tutti!!! :D
ok ma non avrebbe molto senso a livello kernel visto che kernelpkg gli fà nello stesso modo di Pat ...

inoltre dovresti aggiornare lilo ecc... a mano... non sò ma non vedo vantaggi o lati positivi.

se vuoi provare con gli slackbuild ok... fai come vuoi ;)

chiudiamo qui altrimenti andiamo troppo OT

Inviato: lun 11 giu 2007, 0:29
da samiel
Grazie della segnalazione,
rivedo subito il testo

M.

Inviato: mar 12 giu 2007, 22:46
da Loris