Forum officiel de NuTyX

Aide => Le gestionnaire de paquets => Discussion démarrée par: guy_ le mar. nov. 27 16:25:16 2018

Titre: problème pour complier dans une chroot32
Posté par: guy_ le mar. nov. 27 16:25:16 2018
Bonjour,

J'essaie de compiler avec cards create -r <nom_du_paquet> dans une chroot 32bits lancée à partir d'une nutyx x86_64...

Pour utiliser cards dans la chroot32, je dois lancer la chroot avec
sudo setarch linux32 chroot /chroot32
sinon il installe les paquet 64bits

La chroot est alors bien vue comme une 32  bits
root [ / ]# uname -m
i686

Le problème que je recontre, c'est que cards ne reconnait pas les dependences à installer, bien qu'elles soit listées dans le Pkgfile
/usr/ports/personnel/<nom_du_paquet> has no deps
et la compil finit évidemment par se planter.

Un paquet sans dépendances se compile sans problème.


Guy
Titre: Re : problème pour complier dans une chroot32
Posté par: Thierry le mar. nov. 27 16:30:26 2018
Je vais regarder ça mais il me semble que c'est moins compliquer. J'avais eu à compiler Firefox de cette façon puisque la compilation de Firefox (même en 32 bits) reclamme au moins 6 Giga de RAM.

En gros j'installe une NuTyX 32 bits:
sudo ARCH=i686 install-nutyx
Je rentre dans la chroot une fois installée
sudo ARCH=i686 install-nutyx -ec
Ensuite je configure tout le truc pour pouvoir utiliser build-collection et faire par exemple:
build-collection /stable/gui-extra firefox
Titre: Re : problème pour complier dans une chroot32
Posté par: guy_ le sam. déc. 01 14:55:21 2018
Salut Thierry,

Le problème semble plus général en 32 bits:
J'ai complété ma chrot32 pour en faire en une 32 bits 10.4 fixed, j'ai booté dessus et j'ai essayé da compiler (sans chroot)
et j'ai le même souci.

Aveccards create -r <non-du-paquet>Cards supprime les paquets non dans base mais n'ajoute pas ceux repris dans la ligne "#Depends on:" du Pkgfile...

J'espère que tu auras un peu de temps pour regarder ceci avant la 11.0.
Merci

Guy
Titre: Re : problème pour complier dans une chroot32
Posté par: Thierry le sam. déc. 01 23:56:38 2018
Salut Guy,

La commande cards create -r ne compile pas les dépendances, elle utilise TOUJOURS les binaires. Et si ces dépendances n'existent pas, le paquet final sera directement compilé et finira en erreur:
cards create -h
Je vais essayer de t'expliquer la procédure à suivre, je crois que tu fais une petite erreur à un moment donné:

1. J'installe une NuTyX 32 bits dans le dossier /i686-rolling:
ARCH=i686 LFS=/i686-rolling install-nutyx
2. Je rentre dans ma 32 bits:
ARCH=i686 LFS=/i686-rolling install-nutyx -ec
3. Je rapatrie les ports qui m'intéressent pour ce test cad base,cli et gui:
ports -u base
ports -u cli
ports -u gui
va y avoir quelque messages du genre:
This rsync lacks old-style --compress due to its external zlib.  Try -zz.
Continuing without compression.

On peut les ignorer.

4. Je télécharge les paquets de development:
get cards.devel
5. je rapatrie les binaires des 3 collections base, cli et gui
for i in base cli gui
do
rsync -av --delete rsync://downloads.nutyx.org/nutyx/i686/rolling/$i/ /usr/ports/$i/
done
6. Je modifie mon /etc/cards.conf
dir /usr/ports/gui
dir /usr/ports/cli
dir /usr/ports/base

....
## For all the graphical applications
dir /var/lib/pkg/depot/gui-extra|http://rsync.nutyx.org
#
## For a minimal graphical interface
# dir /var/lib/pkg/depot/gui|http://rsync.nutyx.org
#
## For all the console applications
dir /var/lib/pkg/depot/cli-extra|http://rsync.nutyx.org
#
## For a minimal console interface
# dir /var/lib/pkg/depot/cli|http://rsync.nutyx.org
#
## Chroot system without reboot possibilities for a chroot
# dir /var/lib/pkg/depot/base|http://rsync.nutyx.org
#
...
C'est à dire que je commente les dépots officiels de base, cli et gui et utilises les ports officiels AVEC LES BINAIRES dispos

Pour vérifier si la configuration est correcte, tu peux utiliser les commandes:
cards config
1 Directory: /usr/ports/gui
2 Directory: /usr/ports/cli
3 Directory: /usr/ports/base
4 Directory: /var/lib/pkg/depot/nos from http://downloads.nutyx.org/i686/10.4/nos
5 Directory: /var/lib/pkg/depot/lxqt-extra from http://downloads.nutyx.org/i686/10.4/lxqt-extra
...
..
.
17 Directory: /var/lib/pkg/depot/gui-extra from http://downloads.nutyx.org/i686/10.4/gui-extra
18 Directory: /var/lib/pkg/depot/cli-extra from http://downloads.nutyx.org/i686/10.4/cli-extra
Base System list directory: /var/lib/pkg/depot/base
Binaries : i686

et

cards level
0: /usr/ports/gui/gsfonts
0: /usr/ports/gui/libcap-ng
0: /usr/ports/gui/libdvbpsi
0: /usr/ports/gui/libsepol
0: /usr/ports/gui/printproto
0: /usr/ports/gui/tinyxml
0: /usr/ports/gui/xorg-font-alias
0: /usr/ports/gui/xorg-font-util
0: /usr/ports/gui/xorg-libpciaccess
0: /usr/ports/gui/xorg-util-macros
0: /usr/ports/gui/xorg-xbitmaps
0: /usr/ports/gui/xorgproto
0: /usr/ports/gui/xulrunner
0: /usr/ports/cli/ack
...
..
26: /usr/ports/gui/kguiaddons
26: /usr/ports/gui/kidletime
26: /usr/ports/gui/kwayland
26: /usr/ports/gui/kwindowsystem
26: /usr/ports/gui/oxygen-icons5
26: /usr/ports/gui/solid
27: /usr/ports/gui/libkscreen


7. Je peux maintenant compiler n'importe quel paquet des ces trois collections, mais si je ne modifie aucun Pkgfile, la compilation ne se fera pas puisque la version binaire est à jour.
Titre: Re : problème pour complier dans une chroot32
Posté par: guy_ le dim. déc. 02 13:36:42 2018
Thierry,

La manière don tu as reprécisé les choses m'a permis d'y voir plus clair.

La commande cards create -r ne compile pas les dépendances, elle utilise TOUJOURS les binaires.
Et si ces dépendances n'existent pas, le paquet final sera directement compilé et finira en erreur:
Je pensais -naïvement- que s'il ne trouvait pas les dépendances binaires, il allait les télécharger ...

Après avoir fait un rsync des dépots base cli gui, j'ai pu compiler wine (32) et l'exécuter dans ma nutyx x86_64 après avoir copié les librairies 32 bits nécessaires (p.ex. dans /opt/i686) et configuré le loader.

Merci de ta réponse.
Titre: Re : problème pour complier dans une chroot32
Posté par: Thierry le mar. déc. 04 10:54:28 2018
Salut @Guy,

A l'occasion tu pourrai décrire ta procédure qur tu as suivi pour compiler WINE.
Titre: Re : problème pour complier dans une chroot32
Posté par: guy_ le mar. déc. 04 21:12:02 2018
Salut Thierry,

Pour wine, j'ai mis à jour le Pkgfile de la NuTyX 9.0,
puis j'ai compilié dans une NuTyX 32 bits.

Ensuite, dans ma 64 bits, j'ai fait un bsdtar du paquet dans un dossier (p.ex. /opt/wine)
Rem: Plutôt que de mettre dans le Pkgile l'option --prefix=/usr,
     il serait sans doute préférable de mettre --prefix=/opt/i686/usr p.ex.
     ce qui devrait permettre d'utiliser cards install plutôt que bsdtar -xvf

Pour les librairies, j'utilise celles de la NuTyX i686,
je les ai copiées dans /opt/i686/lib
Celles permettant de lancer ds binaires 32 bits sont dans le paquet glibc:
   lib/ld-2.27.so          lib/ld-linux.so.2
   lib/libc-2.27.so        lib/libc.so.6
   lib/libdl-2.27.so       lib/libdl.so.6
   lib/libm-2.27.so        lib/libm.so.6
   lib/libpthread-2.27.so  lib/libpthread.so.6

Ensuite, configurer le loader linux pour qu'il trouve les libs 32.
cd /lib
sudo ln -s /opt/i686/lib/ld-linux.so.2
sudo sh -c "echo /opt/i686/lib      > /etc/ld.so.conf.d/i686.conf"
sudo sh -c "echo /opt/i686/usr/lib >> /etc/ld.so.conf.d/i686.conf"
sudo ldconfig

Il faut bien sûr ajouter les autres librairies dynamiques 32 bits nécessaires au programme à lancer,
je les ai mises soit dans /opt/i686/lib, soit dans /opt/i686/usr/lib

Pour la facilité d'exécution, j'ai rajouté un lien symbolique
cd /usr/bin
ln -s /opt/wine/usr/bin/wine

Et voilà.


Guy
Titre: Re : problème pour complier dans une chroot32
Posté par: Thierry le mer. déc. 05 10:59:31 2018
Génial tu confirmes ce que je prévoyais de faire. Ce weekend j’ajoiteration le paquet wine dans la collection NOS

Bien à toi

Thierry
Titre: Re : problème pour complier dans une chroot32
Posté par: guy_ le mer. déc. 05 13:50:29 2018
Thierry,

Pour info:

Le Pkgfile que j'ai utilisé:
# Depends on: xorg-libx11 xorgproto freetype sane samba libgphoto2 giflib lcms openal
# Description: Emulateur Windows 32
# URL: http://www.winehq.com/

name=wine
version=3.0.3
release=1

source=(https://sourceforge.net/projects/wine/files/Source/$name-$version.tar.xz)

build() {
   cd $name-$version
   ./configure \
      --prefix=/usr \
      --mandir=/usr/share/man \
      --sysconfdir=/etc \
      --with-x
   make depend
   make
   make DESTDIR=$PKG install
   mkdir -p $PKG/etc/wine
}


et le résultat de la commande
find /opt/i686
:
(post suivant)
Titre: Re : problème pour complier dans une chroot32
Posté par: guy_ le mer. déc. 05 13:51:40 2018
/opt/i686
/opt/i686/lib
/opt/i686/lib/libblkid.so.1.1.0
/opt/i686/lib/librt-2.27.so
/opt/i686/lib/libmount.so.1
/opt/i686/lib/libm-2.27.so
/opt/i686/lib/libpcre.so.1.2.10
/opt/i686/lib/libz.so.1.2.11
/opt/i686/lib/libm.so.6
/opt/i686/lib/libpthread-2.27.so
/opt/i686/lib/libblkid.so.1
/opt/i686/lib/libmount.so.1.1.0
/opt/i686/lib/libz.so.1
/opt/i686/lib/libuuid.so.1
/opt/i686/lib/libresolv.so.2
/opt/i686/lib/librt.so.1
/opt/i686/lib/libc-2.27.so
/opt/i686/lib/libuuid.so.1.3.0
/opt/i686/lib/libpcre.so.1
/opt/i686/lib/libbz2.so.1.0
/opt/i686/lib/libbz2.so.1.0.6
/opt/i686/lib/libdl-2.27.so
/opt/i686/lib/libc.so.6
/opt/i686/lib/libresolv-2.27.so
/opt/i686/lib/libpthread.so.0
/opt/i686/lib/ld-2.27.so
/opt/i686/lib/ld-linux.so.2
/opt/i686/lib/libdl.so.2
/opt/i686/usr
/opt/i686/usr/lib
/opt/i686/usr/lib/libffi.so.6
/opt/i686/usr/lib/libpixman-1.so.0.34.0
/opt/i686/usr/lib/libXdamage.so.1.1.0
/opt/i686/usr/lib/libgcc_s.so.1
/opt/i686/usr/lib/libfreetype.so.6.16.1
/opt/i686/usr/lib/libdatrie.so.1.3.3
/opt/i686/usr/lib/libffi.so.6.0.4
/opt/i686/usr/lib/libffi.so
/opt/i686/usr/lib/libglib-2.0.so
/opt/i686/usr/lib/libcairo.so
/opt/i686/usr/lib/libcairo.so.2
/opt/i686/usr/lib/libxcb-render.so
/opt/i686/usr/lib/libXft.so.2
/opt/i686/usr/lib/libXdamage.so.1
/opt/i686/usr/lib/libgobject-2.0.so.0.5600.1
/opt/i686/usr/lib/libfribidi.so.0.4.0
/opt/i686/usr/lib/libXdmcp.so.6
/opt/i686/usr/lib/libatk-1.0.so.0
/opt/i686/usr/lib/libXcursor.so
/opt/i686/usr/lib/libXrandr.so.2
/opt/i686/usr/lib/libjpeg.so.8
/opt/i686/usr/lib/libgdk-x11-2.0.so
/opt/i686/usr/lib/libfontconfig.so.1.11.1
/opt/i686/usr/lib/libXcomposite.so
/opt/i686/usr/lib/libXcursor.so.1
/opt/i686/usr/lib/libgthread-2.0.so.0
/opt/i686/usr/lib/libgtk-x11-2.0.so.0.2400.32
/opt/i686/usr/lib/libXcursor.so.1.0.2
/opt/i686/usr/lib/libstdc++.so.6
/opt/i686/usr/lib/libXcomposite.so.1.0.0
/opt/i686/usr/lib/libharfbuzz.so
/opt/i686/usr/lib/libpangocairo-1.0.so
/opt/i686/usr/lib/libXau.so
/opt/i686/usr/lib/libpangoft2-1.0.so.0
/opt/i686/usr/lib/libxcb-shm.so
/opt/i686/usr/lib/libXdamage.so
/opt/i686/usr/lib/libfreetype.so.6
/opt/i686/usr/lib/libgdk-x11-2.0.so.0
/opt/i686/usr/lib/libgio-2.0.so
/opt/i686/usr/lib/libxcb-shm.so.0
/opt/i686/usr/lib/libgobject-2.0.so
/opt/i686/usr/lib/libpangocairo-1.0.so.0.4200.1
/opt/i686/usr/lib/libatk-1.0.so
/opt/i686/usr/lib/libgmodule-2.0.so.0
/opt/i686/usr/lib/libstdc++.so
/opt/i686/usr/lib/libjpeg.so.8.1.2
/opt/i686/usr/lib/libgdk-x11-2.0.so.0.2400.32
/opt/i686/usr/lib/libfltk.so.1.3
/opt/i686/usr/lib/libXdmcp.so
/opt/i686/usr/lib/libXdmcp.so.6.0.0
/opt/i686/usr/lib/libexpat.so.1.6.7
/opt/i686/usr/lib/libpango-1.0.so
/opt/i686/usr/lib/libgobject-2.0.so.0
/opt/i686/usr/lib/libexpat.so.1
/opt/i686/usr/lib/libXext.so.6
/opt/i686/usr/lib/libgmodule-2.0.so
/opt/i686/usr/lib/libfribidi.so
/opt/i686/usr/lib/libX11.so.6
/opt/i686/usr/lib/libthai.so.0.3.0
/opt/i686/usr/lib/libgmodule-2.0.so.0.5600.1
/opt/i686/usr/lib/libXrandr.so
/opt/i686/usr/lib/libpango-1.0.so.0.4200.1
/opt/i686/usr/lib/libgdk_pixbuf-2.0.so.0
/opt/i686/usr/lib/libglib-2.0.so.0.5600.1
/opt/i686/usr/lib/libdatrie.so.1
/opt/i686/usr/lib/libgthread-2.0.so
/opt/i686/usr/lib/libXcomposite.so.1
/opt/i686/usr/lib/libXrandr.so.2.2.0
/opt/i686/usr/lib/libxcb.so.1.1.0
/opt/i686/usr/lib/libpangoft2-1.0.so
/opt/i686/usr/lib/libgtk-x11-2.0.so.0
/opt/i686/usr/lib/libgdk_pixbuf-2.0.so
/opt/i686/usr/lib/libpng16.so.16
/opt/i686/usr/lib/libX11.so.6.3.0
/opt/i686/usr/lib/libharfbuzz.so.0
/opt/i686/usr/lib/libthai.so
/opt/i686/usr/lib/libglib-2.0.so.0
/opt/i686/usr/lib/libXfixes.so.3.1.0
/opt/i686/usr/lib/libthai.so.0
/opt/i686/usr/lib/libXau.so.6
/opt/i686/usr/lib/libxcb.so.1
/opt/i686/usr/lib/libgdk_pixbuf-2.0.so.0.3612.0
/opt/i686/usr/lib/libpixman-1.so.0
/opt/i686/usr/lib/libxcb-shm.so.0.0.0
/opt/i686/usr/lib/libXau.so.6.0.0
/opt/i686/usr/lib/libXinerama.so.1
/opt/i686/usr/lib/libgio-2.0.so.0.5600.1
/opt/i686/usr/lib/libharfbuzz.so.0.10706.0
/opt/i686/usr/lib/libpangocairo-1.0.so.0
/opt/i686/usr/lib/libgio-2.0.so.0
/opt/i686/usr/lib/libgthread-2.0.so.0.5600.1
/opt/i686/usr/lib/libxcb-render.so.0
/opt/i686/usr/lib/libXft.so.2.3.2
/opt/i686/usr/lib/libpixman-1.so
/opt/i686/usr/lib/libgtk-x11-2.0.so
/opt/i686/usr/lib/libXext.so.6.4.0
/opt/i686/usr/lib/libdatrie.so
/opt/i686/usr/lib/libpng16.so.16.35.0
/opt/i686/usr/lib/libXinerama.so.1.0.0
/opt/i686/usr/lib/libxcb-render.so.0.0.0
/opt/i686/usr/lib/libpango-1.0.so.0
/opt/i686/usr/lib/libpangoft2-1.0.so.0.4200.1
/opt/i686/usr/lib/libXfixes.so.3
/opt/i686/usr/lib/libatk-1.0.so.0.22810.1
/opt/i686/usr/lib/libfontconfig.so.1
/opt/i686/usr/lib/libXrender.so.1.3.0
/opt/i686/usr/lib/libXrender.so.1
/opt/i686/usr/lib/libcairo.so.2.11400.12
/opt/i686/usr/lib/libstdc++.so.6.0.24
/opt/i686/usr/lib/libfribidi.so.0