Forum

Sun Feb 11 11:00:53 2024 UTC
Sortie de la dernière version de NuTyX
NuTyX 24.06.3 disponible avec cards 2.7.4
Sat Jan 20 21:12:08 2024 UTC
Générale
Re : Flatpak Steam -- bwrap executable not setuid root
Sat Jan 20 16:29:57 2024 UTC
Matériel
Re : WiFi Intel/iwlwifi
Sat Jan 20 06:24:23 2024 UTC
Matériel
Re : WiFi Intel/iwlwifi
Sat Jan 13 18:02:18 2024 UTC
Matériel
Re : WiFi Intel/iwlwifi
Sun Jan 7 19:14:00 2024 UTC
Matériel
WiFi Intel/iwlwifi [résolu]
Mon Dec 25 08:58:18 2023 UTC
Générale
Re : Mise à jour nutyx sans tout réinstaller
Sun Dec 24 18:06:32 2023 UTC
Générale
Re : Mise à jour nutyx sans tout réinstaller
Sat Dec 23 14:39:14 2023 UTC
Générale
Mise à jour nutyx sans tout réinstaller
Wed Dec 6 21:13:45 2023 UTC
Générale
Re : Installation sous Mac

Wed Feb 28 15:05:49 2024 UTC

Mise en place de la commande "mybld"

Important

Toutes les commandes se tapent dans votre compte personnel. Autrement dit, il ne faut pas utiliser le compte root.

Une fois le projet GIT récupéré, toutes les manipulations DOIVENT se faire depuis le dosssier contenant votre projet GIT.

Mise en place

Les outils (paquets à installer)

On part du principe que votre NuTyX est vierge de tout paquet de développement. On commence donc par installer les utilitaires:
get rsync git

Les recettes du projet GIT

On commence par cloner le projet GIT contenant toutes les recettes des paquets 64 bits de la NuTyX:
git clone -b <branch> https://github.com/NuTyX/packages-x86_64.git <branch>
La variable <branch> peut prendre les valeurs testing ou rolling.

Une fois le projet GIT en place, on se déplace à la racine de celui-ci, en effet la commande mybld utilise des information du GIT (VERSION, USERNAME, EMAIL, etc).

Aller à la racine du projet

Le projet GIT est cloné. Il faut maintenant se rendre à la racine de celui-ci.
cd  <branch>
Désormais toutes les commandes qui suivent doivent être effectuées depuis le dossier actuel.

Configurer son nom et email

Cette étape est nécessaire si vous souhaitez partager vos nouveaux paquets, en effet, la commande mybld -n utilise cette information lors de la création de votre nouveau paquet.
git config --global user.name "François Pignon"
git config --global user.email "francois@nutyx.org"

Les dossiers de fonctionement

La commande mybld utilise un ensemble de dossiers pour son fonctionnement, il faut donc les créer via la commande:
mybld -I

Vous pouvez ajuster l'emplacement des dossiers de fonctionnement dans le fichier de configuration ~/.mybld via les variables ROOT, ROOTMOUNT et VERSION.

Collections disponibles

Choisissez la collection sur laquelle vous souhaitez travailler.

En fonction de la collection choisie dans la colonne de gauche, vous récupérez les collections spécifiées dans la colonne de droite.

Liste des collections.
base base
cli base cli
gui base cli gui
cli-extra base cli cli-extra
gui-extra base cli gui gui-extra

Les collections en binaires

En fonction de la collections choisie, lancer la commande:
mybld -s nom_de_collection
afin de récupérer la (les) collection(s) nécessaire(s).

Par exemple, pour une utilisation de la collection gui, lancer la commande:

for i in base cli gui; do mybld -s $i;done

Il est possible de spécifier une adresse et une version personnalisées dans le fichier de configuration ~/.mybld via les variables URL et VERSION.

Configuration de cards

Par défaut, la configuration de cards spécifie les collections disponibles sur le serveur officiel de NuTyX. Afin de pouvoir installer, conserver ou supprimer les futures paquets personnels, il faut spécifier dans le fichier /etc/cards.conf la provenance de chaque collection de manière indépendante.

Dans la configuration ci-dessous, les paquets personnels seront stockés dans le dossier: /home/tnut/www/x86_64/<nom_de_la_branche>/<nom_de_la_collection>

Les collections officielles restent sur le serveur distant.

Le contenu du fichier /etc/cards.conf après modifications:

# No global url should be defined
# We need to specify an url only
# for remote repositories collection
# Default global server URL 
# url http://downloads.nutyx.org
#
# My own repository (this repository) without specified url 
dir /home/tnut/www/x86_64/<nom_de_la_branche>/<nom_de_la_collection>
#
## For all the graphical applications and desktops
dir /var/lib/pkg/depot/gui-extra|http://downloads.nutyx.org
#
## For a minimal graphical interface
dir /var/lib/pkg/depot/gui|http://downloads.nutyx.org
#
## For all the console applications
dir /var/lib/pkg/depot/cli-extra|http://downloads.nutyx.org
#
## For a minimal console interface
dir /var/lib/pkg/depot/cli|http://downloads.nutyx.org
#
## Chroot system without reboot possibilities for a chroot
dir /var/lib/pkg/depot/base|http://downloads.nutyx.org
#
## Normaly you want to keep base and
base /var/lib/pkg/depot/base
#
#
## If you want to keep more collections remove comments below
# Adjust to your needs
#
# base /var/lib/pkg/depot/cli
# base /var/lib/pkg/depot/cli-extra
# base /var/lib/pkg/depot//gui
# base /var/lib/pkg/depot/gui-extra
# base /var/lib/pkg/depot/...

Utiliser la commande

(Re)Compiler un paquet

mybld nom_du_paquet
La compilation commence immédiatement.

Incrementer la version et recompiler un paquet

mybld -i nom_du_paquet
Après confirmation, la compilation commence immédiatement.

Mode avancée

Supposons que vous ayez un paquet qui ne veut pas se compiler correctement. Dans ce cas le meilleur moyen est d'utiliser l'option -p pour pause.

Pour illustrer l'option --pause, je vais essayer de compiler le paquet nftables.

Entrer dans la chroot

mybld -p nftables
You are now in chroot.
Type exit when finish.

 Good luck !!!
 

Une nouvelle commande est née

En fonction de la collection dans laquelle se trouve le paquet que vous souhaitez construire, une nouvelle commande appelée <collection_name> est disponible.

Dans cette exemple, le paquet nftables appartient à la collection cli-extra on peut donc taper la commande:

cli-extra -h
usage: cli-extra [option]
options:
  -a,--all             will build all the ports of the 'cli-extra'
                       collection in the right order
  -l,--list            will list all the ports of the 'cli-extra'
                       collection in the right order
  -ru,--remove-url     remove the URL part in /etc/cards.conf file
                       for the 'cli-extra' collection
  -cp,--check-ports    check if new ports are available
  -cb,--check-binaries check if binaries are uptodate
  -d,--dry             check if binaries are different
                       then the ports but dont build anything
  -s,--sync            synchronise binaries from rsync server
                         location
  -c,--config          printout the configuration
  -h,--help            print help and exit
  -v,--version         print version and exit
  -u,--usage           print the recommended way of using the
                       'cli-extra' script

Où est quoi ?

Voilà une bonne question.
Emplacements de:
DEPOT /DEPOT
cli-extra collection DEPOT /DEPOT/cli-extra
nftables Pkgfile /DEPOT/cli-extra/nftables/Pkgfile
Sources files /sources
Compilation logs /LOGS
working directory /tmp/work/src and /tmp/work/pkg

Continuer avec la compilation

Essayons maintenant de compiler le paquet nftables. Tapez simplement:
cli-extra nftables
La compilation commence normalement.

Si une erreur survient, nous serons simplement à nouvau au prompt:

checking for LIBMNL... yes
checking for LIBNFTNL... no
configure: error:
  Package requirements (libnftnl >= 1.1.8) were not met:

No package 'libnftnl' found

Consider adjusting the PKG_CONFIG_PATH environment variable
if you installed software in a non-standard prefix.

Alternatively, you may set the environment variables
 LIBNFTNL_CFLAGS and LIBNFTNL_LIBS
 to avoid the need to call pkg-config.
See the pkg-config man page for more details.
=======> ERROR: Building 
 '/DEPOT/cli-extra/nftables/nft....cards.tar.xz' failed.
cards 2.4.124 create:
  could not parse Pkgfile: While running 'build()'

Corriger l'erreur

On peut maintenant corriger l'erreur en ajustant les dépendances:
cards install libnftnl libnftnl.devel
Nous allons donc dans le dossier de travail et essayons à nouveau:
cd /tmp/work/src/nftables-0.9.7
 ./configure --prefix=/usr \
        --sysconfdir=/etc/nftables \
        --mandir=/usr/share/man \
        --with-json
Déjà bien mieux.
nft configuration:
  cli support:			readline
  enable debugging symbols:	yes
  use mini-gmp:			no
  enable man page:              yes
  libxtables support:		no
  json output support:          yes
  enable Python:		yes (with /usr/bin/python)
On peut maintenant terminer les commandes du Pkgfile:
make
La dernière commande du Pkgfile est:
make DESTDIR=$PKG install
La variable PKG doit être définie sur /tmp/work/pkg:
PKG=/tmp/work/pkg
Il est temps de terminer:
make DESTDIR=$PKG install
install -Dm644 ../nftables.conf "$PKG/etc/nftables/nftables.conf"

Empaqueter

Lorsque toutes les commandes du Pkgfile ont été tapé, on peut alors se rendre dans le dossier du Pkgfile et utiliser la commande pkgmk -po pour finir le paquet:
cd /DEPOT/cli-extra/nftables/
pkgmk -po

Aide

La commande mybld permet toute sorte d'options.

mybld -h

Pensez à (re)lire le manuel disponible pour obternir plus d'information sur les autres options possibles:

man mybld

Soyez le premier à venir commenter le sujet.