multilib all-in-one

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

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware64 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 Slackware64, se l'argomento è Slackware32 o generale usate rispettivamente il forum Slackware o 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.
Avatar utente
ZeroUno
Staff
Staff
Messaggi: 5441
Iscritto il: ven 2 giu 2006, 14:52
Nome Cognome: Matteo Rossini
Slackware: current
Kernel: slack-current
Desktop: ktown-latest
Distribuzione: 01000000-current
Località: Roma / Castelli
Contatta:

multilib all-in-one

Messaggio da ZeroUno »

Le multilib di alien sono buone perchè sono ufficiali, ma a me non sono mai piaciute perchè:
1) sono suddivise in troppi file
2) quelle base sovrascrivono quelle di slackware. Di quelle base a me serve solamente glibc-solibs perchè senza non posso fare ldd e altro, così mi converto manualmente la glibc-solibs di slackware32

Visto che tanto quei pacchetti li installo sempre tutti, mi sono fatto una multilib all-in-one.


ecco lo script

Codice: Seleziona tutto

#!/bin/bash

if ! env|grep -q WGETOPT;then
  WGETOPT=-q
fi

SLACK=${SLACK:-13.1}
PKGNAME=compat32-multilibs
VERSION=0.1_$SLACK
ARCH=x86_64
BUILD=1mt

MIRROR=http://ftp.osuosl.org/pub/slackware/slackware-$SLACK/slackware

CWD=`pwd`
TMP=${TMP:-/tmp/buildpkgs/$PKGNAME}
FILES=$TMP/files
PKG=$TMP/$PKGNAME-package
SRC=$TMP/src-$VERSION
PKGTMP=$SRC/pkgtmp

rm -rf $SRC $PKG
mkdir -p $TMP $PKG $SRC $PKGTMP $FILES

DOINST=$PKG/install/doinst.sh
mkdir -p $PKG/install/
mkdir -p $PKG/usr/doc/$PKGNAME-$VERSION
>$PKG/usr/doc/$PKGNAME-$VERSION/packages.txt
cp $0 $PKG/usr/doc/$PKGNAME-$VERSION/createpackage.sh
> $DOINST

PACKS=$(echo "

BASE_LIBS
aaa_elflibs glibc-solibs

GROUP_A
bzip2 cups cxxlibs dbus e2fsprogs util-linux-ng
openssl-solibs_NONEEDED

GROUP_AP
mpg123 mysql

GROUP_D
libtool

GROUP_L
alsa-lib alsa-oss atk audiofile cairo dbus-glib esound expat freetype gamin glib2
libart_lgpl libexif libgphoto2 libidn libjpeg libmng libpng libtermcap libtiff libxml2
hal jasper lcms libxslt ncurses svgalib v4l-utils popt qt readline sdl zlib 
gtk+2 pango seamonkey-solibs

GROUP_N
curl cyrus-sasl gnutls libgcrypt libgpg-error openldap-client
openssl

GROUP_X
fontconfig glew libFS libICE libSM 
libX11 libXScrnSaver libXTrap libXau libXaw libXcomposite libXcursor 
libXdamage libXdmcp libXevie libXext libXfixes libXfont libXfontcache 
libXft libXi libXinerama libXmu libXp libXpm libXprintUtil libXrandr 
libXrender libXres libXt libXtst libXv libXvMC libXxf86dga libXxf86misc 
libXxf86vm
libdmx libdrm libfontenc libxcb 
mesa pixman 


")





MANIFEST=$FILES/MANIFEST-$VERSION
wget $WGETOPT -c -O $MANIFEST.bz2 $MIRROR/MANIFEST.bz2
bzip2 -qdk $MANIFEST.bz2 >/dev/null 2>&1





TXZ=""
cat $MANIFEST|while read ROW;do
  cd $SRC
  

  if [ "${ROW:0:13}" == "||   Package:" ];then
    # inizio pacchetto
    SPLIT=($(echo "$ROW"|sed -r 's#^.*Package:.*\./([a-z]*)/(.*)-([^-]*)-([^-]*)-([^\.]*)\.(t.z).*$#\1 \2 \3 \4 \5 \6#'))
    PACKLOC=${SPLIT[0]}
    PACKNM=${SPLIT[1]}
    PACKVER=${SPLIT[2]}
    PACKARCH=${SPLIT[3]}
    PACKBUILD=${SPLIT[4]}
    PACKEXT=${SPLIT[5]}
    PACKNAME=$PACKNM-$PACKVER-$PACKARCH-$PACKBUILD
    PACKFILE=$FILES/$PACKNAME.$PACKEXT
    PACKURL=$MIRROR/$PACKLOC/$PACKNAME.$PACKEXT
    if echo $PACKS|grep -q " $PACKNM ";then
      echo "PACKAGE: $PACKNM - ver: $PACKVER - arch: $PACKARCH - build: $PACKBUILD - ext: $PACKEXT - group: $PACKLOC"
    else
      echo -ne "skipping package: $PACKLOC/$PACKNM                    \r"
      SPLIT=""
    fi
    continue
  fi
  if [ -z "$SPLIT" ];then continue;fi
  if [ "${ROW:0:2}" == "++" ]||[ "${ROW:0:2}" == "||" ];then continue;fi


  echo "Download 32bit package"
  wget $WGETOPT -c  $PACKURL -O $PACKFILE


  rm -rf $PKGTMP
  mkdir -p $PKGTMP

  echo "Exploding package"
  cd $PKGTMP
  ( umask 000; tar xf $PACKFILE install usr/lib/ lib/ usr/bin/ usr/i486-slackware-linux/ etc/gtk-2.0/ etc/pango/ 2>/dev/null)
  if [ -e install/doinst.sh ];then cp -f install/doinst.sh $SRC/$PACKNAME.sh;fi

  # Take care of 32bit binaries:
  if [ "$PACKNM" = "gtk+2" -o  "$PACKNM" = "pango" ]; then
    find usr/bin -type f ! -name "*-32" -exec mv {} {}-32 \;
  elif [ -d usr/bin ]; then
    mkdir ./32
    find usr/bin -type f -exec mv {} ./32 \;
    rm -rf usr/bin/*
    mv ./32 usr/bin/
  fi

  if [ "$PACKNM" = "gtk+2" -o  "$PACKNM" = "pango" ]; then
    cat install/doinst.sh | grep -v  '( cd usr/bin' | grep -v  '( cd usr/doc' >> $DOINST
    if [ "$PACKNM" = "gtk+2" ]; then
      echo "config etc/gtk-2.0/i486-slackware-linux/im-multipress.conf.new" >> $DOINST
    fi
  elif [ "$PACKNM" = "glibc-solibs" ];then
    mv $DOINST $DOINST.2
    cat install/doinst.sh |grep -v -e glibc.sh.new -e glibc.csh.new > $DOINST
    cat $DOINST.2 >>$DOINST
    rm $DOINST.2
  elif [ -f install/doinst.sh ]; then
    cat install/doinst.sh |grep -v "etc/ld.so.conf" |grep -E '(usr/bin |lib |lib/)' |sed -e 's#usr/bin#usr/bin/32#g' >> $DOINST
  fi


  if [ "$PACKNM" = "cxxlibs" ]; then
    mkdir -p usr/lib  
    for OLIB in $(find usr/i486-slackware-linux/lib -type f -maxdepth 1) ; do cp -a $OLIB usr/lib/; done
    cat install/doinst.sh | grep '/i486-slackware-linux' | sed -e 's#/i486-slackware-linux##g' >> $DOINST
  fi

  if [ "$PACKNM" = "qt" -o "$PACKNM" = "qt3" ]; then
    cat install/doinst.sh | grep -v 'usr/bin' | grep -v 'opt/kde3/bin' >>$DOINST
  fi






  echo "Merging package"
  rm -rf install/
  
  find -type d -exec mkdir -p $PKG/{} \;
  find ! -type d -exec mv -f {} $PKG/{} \;
  

  echo $PACKNAME >> $PKG/usr/doc/$PKGNAME-$VERSION/packages.txt

  rm -rf $PKGTMP


  SPLIT=""
  echo
done
cat <<EOT > $PKG/install/slack-desc
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description.  Line
# up the first '|' above the ':' following the base package name, and the '|'
# on the right side marks the last column you can put a character in.  You must
# make exactly 11 lines for the formatting to be correct.  It's also
# customary to leave one space after the ':'.

                  |-----handy-ruler------------------------------------------------------|
compat32-multilibs: Multilib 32bit compatibility for Slackware64
compat32-multilibs:
compat32-multilibs:
compat32-multilibs:
compat32-multilibs:
compat32-multilibs:
compat32-multilibs:
compat32-multilibs:
compat32-multilibs:
compat32-multilibs:
compat32-multilibs:
EOT

cd $PKG
makepkg -l n -c n $CWD/$PKGNAME-$VERSION-$ARCH-$BUILD.txz
Lo script è una rivisitazione del converter di alien a cui ho tolto e aggiunto qualcosina, quindi i pacchetti finali sono simili a quelli di alien.


ed ecco i pacchetti per 13.1 e current (c.a. 74Mb l'uno)

compat32-multilibs-0.1_13.1-x86_64-1mt.txz
compat32-multilibs-0.1_current-x86_64-1mt.txz



Che ne pensate?



Ciao
01
Packages finder: slakfinder.org | Slackpkg+, per aggiungere repository a slackpkg

Codice: Seleziona tutto

1011010 1100101 1110010 1101111 - 0100000 - 1010101 1101110 1101111

hashbang
Packager
Packager
Messaggi: 2021
Iscritto il: ven 4 giu 2010, 10:27
Nome Cognome: Luca De Pandis
Distribuzione: macOS/OpenBSD
Località: Lecce/Bergamo

Re: multilib all-in-one

Messaggio da hashbang »

Cosa ne penso? NEL REPO! NEL REPO! NEL REPO! ;) Ottimo lavoro Matteo lo script è ben fatto...se potessi lo proverei volentieri. :D

Avatar utente
ZeroUno
Staff
Staff
Messaggi: 5441
Iscritto il: ven 2 giu 2006, 14:52
Nome Cognome: Matteo Rossini
Slackware: current
Kernel: slack-current
Desktop: ktown-latest
Distribuzione: 01000000-current
Località: Roma / Castelli
Contatta:

Re: multilib all-in-one

Messaggio da ZeroUno »

Prima ha necessità di qualche test (quello per la 13.1 non l'ho nemmeno installato... mi sono fidato di quello per current).

sembra funzionare tutto, ma ldd mi dice che non tutte le dipendenze sono risolte.
Packages finder: slakfinder.org | Slackpkg+, per aggiungere repository a slackpkg

Codice: Seleziona tutto

1011010 1100101 1110010 1101111 - 0100000 - 1010101 1101110 1101111

hashbang
Packager
Packager
Messaggi: 2021
Iscritto il: ven 4 giu 2010, 10:27
Nome Cognome: Luca De Pandis
Distribuzione: macOS/OpenBSD
Località: Lecce/Bergamo

Re: multilib all-in-one

Messaggio da hashbang »

ZeroUno ha scritto:Prima ha necessità di qualche test (quello per la 13.1 non l'ho nemmeno installato... mi sono fidato di quello per current).

sembra funzionare tutto, ma ldd mi dice che non tutte le dipendenze sono risolte.
Beh è ovvio che deve essere testata ;) era per dire. Ti vorrei dare una mano però mi occorre una CPU 64 bit (e non la ho) :D quindi sono obbligato a usare un 32 bit.

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: multilib all-in-one

Messaggio da Blallo »

ora lo testo io con wine
EDIT: il donst mi causa questo

Codice: Seleziona tutto

install/doinst.sh: line 89: syntax error near unexpected token `fi'
install/doinst.sh: line 89: `fi'

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: multilib all-in-one

Messaggio da Blallo »

qualcosa manca in effetti
se eseguo fontforge

Codice: Seleziona tutto

sabino@darkstar:~$ fontforge
fontforge: error while loading shared libraries: libxkbui.so.1: cannot open shared object file: No such file or directory
i pacchetti sono di slacky.eu convertiti con convertpkg di AlienBOB

Avatar utente
ZeroUno
Staff
Staff
Messaggi: 5441
Iscritto il: ven 2 giu 2006, 14:52
Nome Cognome: Matteo Rossini
Slackware: current
Kernel: slack-current
Desktop: ktown-latest
Distribuzione: 01000000-current
Località: Roma / Castelli
Contatta:

Re: multilib all-in-one

Messaggio da ZeroUno »

robert_plant_89 ha scritto:qualcosa manca in effetti
se eseguo fontforge

Codice: Seleziona tutto

sabino@darkstar:~$ fontforge
fontforge: error while loading shared libraries: libxkbui.so.1: cannot open shared object file: No such file or directory
i pacchetti sono di slacky.eu convertiti con convertpkg di AlienBOB
probabilmente fontforge non funzionerebbe nemmeno con le multilib di alien. infatti libxkbui non c'è nella sua lista (e la mia lista l'ho presa da lì e ho fatto solo piccole modifiche).
questo lo posso aggiungere. mi farò una ricerca per gli altri necessari.
Spero, però, di non dover aggiungere tutto X.

comunque i pacchetti esistenti solo a 32bit non vanno convertiti con il tool ma direttamente installati con installpkg.
La conversione è necessaria quando si vuole avere installati SIA la versione a 64 SIA la versione a 32 (per esempio se fontforge è dipendenza di qualche pacchetto esistente solo a 32bit).
Per quanto riguarda fontforge è ricompilabile (c'è lo slackbuild) a 64bit o richiederlo ai pacchettizzatori.

Codice: Seleziona tutto

install/doinst.sh: line 89: syntax error near unexpected token `fi'
install/doinst.sh: line 89: `fi'
mmm. 13.1 o current?
l'errore è nell'installpkg del compat32?
me lo dava (non ricordo se a quella riga o un'altra) la versione precedente, per un bug, ma quella che ho postato non dovrebbe averlo.
l'unico warning (normale) deve essere "cat: etc/gtk-2.0/x86_64-slackware-linux/im-multipress.conf.new: No such file or directory"

errore a parte, wine funziona?


postami qualche riga prima e dopo della 89 del file /var/log/scripts/compat32-multilibs-0.1_13.1-x86_64-1mt
Io in riga 88-90 ho:

Codice: Seleziona tutto

if [ ! -x /sbin/ldconfig ]; then
( cd lib ; rm -rf libnss_nis.so.2 )
( cd lib ; ln -sf libnss_nis-2.11.1.so libnss_nis.so.2 )

dovrai anche rilanciarlo probabilmente perchè altrimenti le librerie non verranno installate correttamente:

Codice: Seleziona tutto

# cd /
# . var/log/scripts/compat32-multilibs-0.1_13.1-x86_64-1mt
stavolta potresti ottenere un po' più di warning.
prima prova a lanciarlo così

Codice: Seleziona tutto

# cd /
# bash -n var/log/scripts/compat32-multilibs-0.1_13.1-x86_64-1mt
se non da errori lo lanci come sopra
Packages finder: slakfinder.org | Slackpkg+, per aggiungere repository a slackpkg

Codice: Seleziona tutto

1011010 1100101 1110010 1101111 - 0100000 - 1010101 1101110 1101111

Avatar utente
ZeroUno
Staff
Staff
Messaggi: 5441
Iscritto il: ven 2 giu 2006, 14:52
Nome Cognome: Matteo Rossini
Slackware: current
Kernel: slack-current
Desktop: ktown-latest
Distribuzione: 01000000-current
Località: Roma / Castelli
Contatta:

Re: multilib all-in-one

Messaggio da ZeroUno »

Ma la directory /usr/bin/32, serve veramente? cioè, a che ci servono i binari a 32bit?
Packages finder: slakfinder.org | Slackpkg+, per aggiungere repository a slackpkg

Codice: Seleziona tutto

1011010 1100101 1110010 1101111 - 0100000 - 1010101 1101110 1101111

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: multilib all-in-one

Messaggio da Blallo »

ZeroUno ha scritto:Ma la directory /usr/bin/32, serve veramente? cioè, a che ci servono i binari a 32bit?
oddio, su questo hai ragione
ora non ho il fisso usabile, appena posso eseguo le procedure precedenti e ti posto gli output
magari reinstallando originali, cioè senza la bin/32, wine e fontforge

Avatar utente
ZeroUno
Staff
Staff
Messaggi: 5441
Iscritto il: ven 2 giu 2006, 14:52
Nome Cognome: Matteo Rossini
Slackware: current
Kernel: slack-current
Desktop: ktown-latest
Distribuzione: 01000000-current
Località: Roma / Castelli
Contatta:

Re: multilib all-in-one

Messaggio da ZeroUno »

Il problema in verità non è solo la bin/32 (che sono riuscito a portare da 20 a 5M)

Il problema si trova più su altri pacchetti.
Per esempio:
alcuni programmi necessitano libpython, quindi ho dovuto installare tutto python. però non posso metterlo tutto, sono 70M inutili. così ho fatto fuori tutta la /usr/lib/python e lasciato la sola libpython.so.
Le qt; richieste è solo /usr/lib/qt/lib; ho lasciato la lib,bin e poco altro.
ed altri.
Ho strippato un po' e il pacchetto è passato dai 70M a 44M.
Dipendenze non risolte mi è rimasto libudev che non me la sono sentito di mettere... All'inizio l'ho messo... mi ha sovrascritto l'udev 64bit (fortuna che me ne sono accorto prima del reboot, perchè ho dovuto reistallarlo)

Poi ho fatto una prova.
Ho disinstallato tutti i pacchetti di compatibilità e lasciato solo la /lib/ld-linux.so
Poi ho preso le SOLE librerie che ldd mi mostra per skype (quindi nessun file di supporto alle librerie), che sono 7Mb
le ho copiate in usr/share/skype/lib32 ed ho avviato skype facendolo puntare a queste librerie. E si è startato tranquillamente.

Per questo sto vedendo di decidere cosa veramente serve da inserire nelle multilib.

Ciao
Matteo
Packages finder: slakfinder.org | Slackpkg+, per aggiungere repository a slackpkg

Codice: Seleziona tutto

1011010 1100101 1110010 1101111 - 0100000 - 1010101 1101110 1101111

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: multilib all-in-one

Messaggio da Blallo »

a questo punto direi di fare i soli pacchetti wine e skype corredati del necessario
che possiamo "buttare" direttamente nel repo a 64 bit, senza dipendenze
per adobereader c'è l'ottimo epdfviewer, in gtk, open source, quindi una cosa in meno
in fondo tutto l'ambaradan non strippato serve maggiormente per cross-compilare

Avatar utente
ZeroUno
Staff
Staff
Messaggi: 5441
Iscritto il: ven 2 giu 2006, 14:52
Nome Cognome: Matteo Rossini
Slackware: current
Kernel: slack-current
Desktop: ktown-latest
Distribuzione: 01000000-current
Località: Roma / Castelli
Contatta:

Re: multilib all-in-one

Messaggio da ZeroUno »

skype l'ho già pacchettizzato con librerie autonome e lo sto caricando.

wine me lo devo ancora studiare (l'ho sempre solo usato), ma è più complicato visto che ci sono i sorgenti, perchè non è vero che esiste solo a 32bit. lo puoi compilare per x86_64 ma poi esegui solo programmi per windows a 64bit :-D

Ma fare un maxi 32bit library-pack comuque credo che abbia la sua utilità.

Ciao
Packages finder: slakfinder.org | Slackpkg+, per aggiungere repository a slackpkg

Codice: Seleziona tutto

1011010 1100101 1110010 1101111 - 0100000 - 1010101 1101110 1101111

Avatar utente
ZeroUno
Staff
Staff
Messaggi: 5441
Iscritto il: ven 2 giu 2006, 14:52
Nome Cognome: Matteo Rossini
Slackware: current
Kernel: slack-current
Desktop: ktown-latest
Distribuzione: 01000000-current
Località: Roma / Castelli
Contatta:

Re: multilib all-in-one

Messaggio da ZeroUno »

A distanza di un mese mi sono ricordato del pacchetto che stavo facendo.

Credo che sia pronto.
Se mi ci date una piccola testata lo uppo sul repository (rispetto alla versione precedente è grande la metà... gli ho dato una bella pulita)
compat32-libraries-0.3_13.1-x86_64-1sl.txz
compat32-libraries-0.3_current-x86_64-1sl.txz
Packages finder: slakfinder.org | Slackpkg+, per aggiungere repository a slackpkg

Codice: Seleziona tutto

1011010 1100101 1110010 1101111 - 0100000 - 1010101 1101110 1101111

Avatar utente
Trotto@81
Iper Master
Iper Master
Messaggi: 3559
Iscritto il: sab 26 giu 2004, 0:00
Nome Cognome: Andrea
Slackware: Slackware64 14.2 bet
Kernel: default
Desktop: KDE 4.14.14
Località: Monasterace M. (RC)
Contatta:

Re: multilib all-in-one

Messaggio da Trotto@81 »

Le multilib ufficiali una volta installate non si possono più rimuovere perchè sovrascrivono le lib a 64bit?
Mi interesserebbe usare queste per far girare Pro Engineer sulla mia slack64.

Avatar utente
Eberoth
Linux 2.x
Linux 2.x
Messaggi: 403
Iscritto il: lun 24 ago 2009, 9:22
Slackware: -current
Kernel: 3.13.6
Desktop: KDE4
Distribuzione: Slackel64

Re: multilib all-in-one

Messaggio da Eberoth »

le uniche multilib a sovrascrivere le librerie di default sono quelle come glibc e famiglia. Tutte le altre vengono installate in /usr/lib e rimangono quindi separate dalle librerie ufficiali che si trovano in /usr/lib64

Rispondi