Forum

Sun Feb 11 11:00:53 2024 UTC
Sortie de la dernière version de NuTyX
NuTyX 24.02.0 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

Sat Mar 9 18:21:38 2024 UTC

Le fichier Pkgfile

Les variables d'aides pour l'empaquetage

PKG

Spécifie le dossier racine lors de l'empaquetage.

SRC

Spécifie le chemin complet du dossier racine des sources et de la compilation.

PKGMK_SOURCE_DIR

Spécifie le chemin complet du dossier dans lequel les sources sont téléchargées.

PKGMK_WORK_DIR

Spécifie le chemin complet du dossier de travail.

PKGMK_NO_STRIP

Commutateur pour déactiver la suppresion des symboles dans les binaires générés.
Activé:
PKGMK_NO_STRIP="yes"
Défaut: "no"

PKGMK_IGNORE_UNPACK

Commutateur pour ignorer l'extraction des fichiers depuis une archive source.
Activé:
PKGMK_IGNORE_UNPACK="yes"
Défaut: "no"

PKGMK_COMPRESS_PACKAGE

Commutateur pour activer la compression des archives des paquets binaires.
Défaut: "yes"

PKGMK_COMPRESS_MODE

Commutateur pour choisir le mode de compression.
Défaut: "xz"
Valeurs possibles: gz, bz2 et xz

PKGMK_KEEP_SOURCES

Commutateur pour garder les sources:
Défaut: "yes"

PKGMK_KEEP_LA_LIBS

Commutateur pour garder les librairies .la.
Défaut: "no"

PKGMK_CLEAN

Commutateur pour nettoyer les archives des paquets produits.
Défaut: "no"

PKGMK_GROUPS

Tableau des groupes possibles.
Valeurs possibles: lib, devel, man, doc, service
Défaut: (devel man doc service)

PKGMK_LOCALES

Tableau des locales générées (si existantes) à l'empaquetage.

PKGMK_COLLECTIONS

Tableau permettant à 'pkgmk' de trouver les dépendances automatiquement dans les dossiers.
Valeurs possibles: (base cli cli-extra gui gui-extra )

PKGMK_IGNORE_REPO

PKGMK_IGNORE_COLLECTION

PKGMK_IGNORE_RUNTIMEDEPS

Les variables pour le paquet

description

La description décrit les fonctionnalitées du paquet en 112 caractères maximums.
Elle DOIT être rédigé en anglais.

url

L'URL spécifie l'adresse où l'on peut trouver de plus amples informations sur le paquet.

license

La license est spécifiée sous forme par exemple:
"GPL2, LGPL3"

packager

Le nom de l'empaqueteur est spécifié sous forme:
<tnut tnut@nutyx.org>

contributors

La liste des empaqueteurs ayant contribué à la construction de ce paquet:
"Tnut,Pierre,Spiky"

name

Le nom du dossier dans lequel le(s) fichier(s) est le nom du paquet.
Chaîne de caractères.
Le nom d'un paquet doit obligatoirement contenir des lettres minuscules uniquement.
Les caractères @ # / \ < > | ne sont pas autorisés dans le nom
La longueur maximum d'un nom est déterminé par la longueur maximum du nom de fichier. Il est préférable de garder une taille la plus petite possible. Deux caractères au minimum.

version

Chaîne de caractères.
Peut contenir toute valeur représentant la version des sources utilisées.
  • 20201201
  • 21.02
  • git-201
  • development

release

Valeur entière entre 1 et 999.
Utile pour informer mybld de recompiler le paquet.

Les dépendances de compilation: makedepends

Fourni la liste des dépendances de compilation du paquet.
makedepends=(glib gtk3 libvorbis python)

Les dépendances de fonctionnement: run

Fourni la liste des dépendances de fonctionnement du paquet.
run=(desktop-file-utils gtk-update-icon-cache)

categories

Normalement détectées automatiquement, si ce n'est pas le cas, on peut les spécifier ici:
categories=(Office Graphics Education)

set

Ajoute le paquet au(x) jeu(x) de paquets spécifié(s)
set=(gnome cinnamon)

alias

Spécifie un nom synonyme. Le synonyme doit etre unique, autrement dit, il ne peut pas s'appeler par le nom d'un autre paquet dans la même collection. Contrairement au nom, un alias peut contenir des majuscules.
alias=(nom1 Nom2 nom3)

source

L'adresse des sources, le nom des fichiers necessaires pour la construction du paquet.
Les fichiers dont les noms sont spécifiés dans le tableau des sources source() doivent se trouver dans le dossier du fichier Pkgfile.
Les fichiers .README, .pre et .post-install ne sont pas listés dans ce tableau.
source=(config
        http://downloads.siteinternetdupaquet.org/$name.$version.tar.xz)

build

La variable permet de prédéfinir la façon de construire le paquet
Actuellement il existe plusieurs modes:
Liste des préselections
meson
mkdir build
cd    build
meson --prefix=/usr \
      ../$name-$version
ninja
DESTDIR=$PKG ninja install
      
autogen
cd $name-$version
./autogen.sh
./configure --prefix=/usr \
            --disable-static
make
make DESTDIR=$PKG install
     
autoreconf
cd $name-$version
autoreconf -fiv
./configure --prefix=/usr \
            -disable-static
make
make DESTDIR=$PKG install
      
autotools
cd $name-$version
./configure --prefix=/usr \
            -disable-static
make
make DESTDIR=$PKG install
      
python2
cd $name-$version
python2 setup.py build
python2 setup.py install --prefix=/usr --root=$PKG
       
python3
cd $name-$version
python3 setup.py build
python3 setup.py install --prefix=/usr --root=$PKG
       
xorg
cd $name-$version
./configure --prefix=/usr        \
            --sysconfdir=/etc    \
            --localstatedir=/var \
            -disable-static
make
make DESTDIR=$PKG install
      
kde5, cmake
mkdir build
cd  build
cmake -DCMAKE_INSTALL_PREFIX=/usr  \
      -DCMAKE_BUILD_TYPE=Release   \
      -DCMAKE_INSTALL_LIBDIR=lib   \
      -DBUILD_TESTING=OFF          \
      -Wno-dev \
      ../$name-$version
make
make DESTDIR=$PKG install
      
kde6
mkdir build
cd  build
cmake -DCMAKE_INSTALL_PREFIX=/usr  \
      -DCMAKE_BUILD_TYPE=Release   \
      -DBUILD_TESTING=OFF          \
      -Wno-dev \
      ../$name-$version
make
make DESTDIR=$PKG install
      

Les fonctions

Toutes les fonctions mentionnées ci-dessous sont optionnelles. Il est tout à fait possible de construire un paquet sans aucune d'entre elle.

prepare

Souvent utilisée pour renommer le dossier source ou pour appliquer un patch necessaire pour la compilation.
La fonction 'prepare' est executée avant la fonction 'build' ci-dessous.

build

Fonction principale pour la compilation du paquet. Si présente, elle sera toujours exécutée avant les fonctions ci-dessous.

package

Fonction optionnelle exécutée en dernier lieu. Peut être utilisée pour l'empaquetage du paquet.

devel

Fonction personnalisée si des actions spécifiques doivent être éffectuées sur le sous-paquet devel.

doc

Fonction personnalisée si des actions spécifiques doivent être éffectuées sur le sous-paquet doc.

lib

Fonction personnalisée si des actions spécifiques doivent être éffectuées sur le sous-paquet lib.

man

Fonction personnalisée si des actions spécifiques doivent être éffectuées sur le sous-paquet man.

service

Fonction personnalisée si des actions spécifiques doivent être éffectuées sur le sous-paquet service.

Le nom du dossier parent

Le dossier d'un paquet doit s'appeler par le nom du paquet, la longueur du nom du dossier (et donc le nom du paquet) ne doit pas dépasser 50 caractères.
  • Il ne peut pas contenir de majuscules, ne peut pas commencer par un chiffre.
  • Il doit commencer par une lettre minuscule
  • Il peut contenir les 26 lettres a à z, les 10 chiffres 0 à 9, et les trois symboles -, _ et +
Exemple: /home/thierry/testing/gui/xorg-server
Ici le nom du paquet DOIT être xorg-server

Le contenu du dossier

En plus de l'indispensable fichier Pkgfile, on peut également trouver un script de pré-installation et un script de post-installation. Ils devront prendre le nom du paquet en préfix, donc toujours avec xorg-server comme nom de paquet dans notre exemple:
  • xorg-server.pre-install
  • xorg-server.post-install
On peut également trouver un fichier README. Il prendra également le nom du paquet en préfix:
  • xorg-server.README

Soyez le premier à venir commenter le sujet.