[Question] PKBUILD

Applications, problèmes de configuration réseau
Répondre
dexter74
Daikyu
Messages : 53
Inscription : jeu. 28 oct. 2021, 20:24
Localisation : Annemasse

[Question] PKBUILD

Message par dexter74 »

Bonjour,

Je souhaiterai un coup de main pour la réaliser d'un PKGBUILD pour Calamares.

J'arrive pas à comprendre les action prepare, build et package et les variables utiles.

Code : Tout sélectionner

pkgname=calamares
pkgver=3.2.61
pkgrel=1
pkgdesc='Installateur Calamares'
arch=('x86_64')
license=('GPL3')
url='https://calamares.io/'
depends=()
source=("https://github.com/calamares/calamares/releases/download/v$pkgver/$pkgname-$pkgver.tar.gz")
sha256sums=('7591b9b60738bdba7b9de2b8da5462ab21006db06a006f0dd21ac5b832711dd2')

prepare() {}
build() {}
package() {}

Code : Tout sélectionner

git clone https://github.com/calamares/calamares.git
mkdir calamares/build
cd calamares/build
cmake -DCMAKE_BUILD_TYPE=Debug ..
make
Note:

Code : Tout sélectionner

- Partition 1: FAT /boot
- Partition 2: LVM (/, /home, /Backup)
Avatar de l’utilisateur
FoolEcho
Maître du Kyudo
Messages : 10707
Inscription : dim. 15 août 2010, 11:48
Localisation : Basse-Normandie

Re: [Question] PKBUILD

Message par FoolEcho »

Salut,

Le premier truc est de consulter le wiki (qui est forcément assez dense, surtout quand on débarque sur le sujet) : :chinois: Ensuite, le mieux est évidemment de t'y confronter et de nous montrer au fur et à mesure où tu en es (et au-delà en cas d'erreur de compilation ou d'installation).

Pour revenir sur tes questions :
  • prepare() : c'est lorsque tu as des opérations à effectuer à la suite de la récupération du code source et de son extraction (le cas le plus courant va concerner l'application de patchs);
  • build() : il s'agit de la compilation proprement dite du code source (ici ce sera configuration et utilisation de make pour ton cas)
  • package() : ici il s'agit de réorganiser le code compilé et les fichiers associés ou supplémentaires pour les répartir dans l'arborescence finale du paquet (respect des standards d'Arch, ajout de .desktop, permissions, fichiers de post install, etc.). Pour ton cas par exemple, ça va être de récupérer l'exécutable généré et de l'installer dans l'arborescence du paquet (dans $pkgdir/usr/bin)... et d'autres trucs selon la cible.


(pour ceux qui se demandaient, oui je suis toujours là :copain: :humour: :pastaper: :merci:)
«The following statement is not true. The previous statement is true.» :nage:
dexter74
Daikyu
Messages : 53
Inscription : jeu. 28 oct. 2021, 20:24
Localisation : Annemasse

Re: [Question] PKBUILD

Message par dexter74 »

Bonjour,

Tous d'abord, merci pour ta réponse .

Je poste mon PKGBUILD, que je suis en train de tester:

Code : Tout sélectionner

#############################################################################################################################
# Dépendance yay: yay -Sy --noconfirm icecream pythonqt qt
#############################################################################################################################
pkgname=calamares
pkgver=3.2.61
pkgrel=1
pkgdesc='Installateur Calamares by Drthrax74'
arch=('x86_64')
makedepends=( 'ack' 'appstream-qt' 'autoconf' 'automake' 'binutils' 'bison' 'boost' 'cmake' 'extra-cmake-modules' 'fakeroot' 
	      'flex' 'gcc' 'gcc-libs-multilib' 'gcc-multilib' 'git' 'icu' 
	      'kcoreaddons' 'kiconthemes' 'kio' 'kparts' 'kservice' 'kpmcore' 'libtool' 
	      'm4' 'make' 'patch' 'plasma-framework' 'python' 'python3' 'python-pip' 'python-qt.py' 'python-yaml' 
	      'qt5-declarative' 'qt5-location' 'qt5-tools' 'qt5-translations' 'qt5-xmlpatterns' 'qt5-webengine' 'yaml-cpp')
license=('GPL3')
source=("https://github.com/calamares/calamares/releases/download/v$pkgver/$pkgname-$pkgver.tar.gz")
sha256sums=('7591b9b60738bdba7b9de2b8da5462ab21006db06a006f0dd21ac5b832711dd2')
#############################################################################################################################
CPU=$(lscpu  | grep "Processeur(s)" | cut -c 42-44)

#############################################################################################################################
prepare(){
	cd $pkgname-$pkgver;
}
#############################################################################################################################
build(){
	cd $pkgname-$pkgver;
	mkdir build;
	sed -i -e 's/"Install configuration files" OFF/"Install configuration files" ON/g' CMakeLists.txt
	cp settings.conf ./build/
	cd build;
	cmake \
		-DCMAKE_BUILD_TYPE=Release 	\
		-DCMAKE_INSTALL_PREFIX=/usr 	\
		-DCMAKE_INSTALL_LIBDIR=lib  	\
		-DWITH_PYTHONQT=ON          	\
		-DBoost_NO_BOOST_CMAKE=ON   	\
		-DSKIP_MODULES="tracking 	\
			dracut			\
			dracutlukscfg		\
			dummycpp		\
			dummyprocess 		\
			dummypython		\
			dummypythonqt		\
			interactiveterminal	\
			initramfs		\
			initramfscfg		\
			services-openrc" 	\
			webview 		\
		-DAppStreamQt_DIR=... ..
}
#############################################################################################################################

package(){
	cd $pkgname-$pkgver/build;
	make -j $CPU  DESTDIR="$pkgdir/" install
}
######################################################################################################################################################################################################
Note:

Code : Tout sélectionner

- Partition 1: FAT /boot
- Partition 2: LVM (/, /home, /Backup)
laurent85
Elfe
Messages : 951
Inscription : mar. 16 oct. 2018, 21:05

Re: [Question] PKBUILD

Message par laurent85 »

Bonjour,
CPU=$(lscpu | grep "Processeur(s)" | cut -c 42-44)
make -j $CPU DESTDIR="$pkgdir/" install
Heu... non, plutôt:

Code : Tout sélectionner

make -j$(nproc)  DESTDIR="$pkgdir/" install
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17180
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [Question] PKBUILD

Message par benjarobin »

Et je dirais même tu ne dois pas specifier ce genre d'option dans le PKGBUILD. Si tu veux configurer le nombre de build parallèle cela ce fait dans makepkg.conf via MAKEFLAGS
Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
dexter74
Daikyu
Messages : 53
Inscription : jeu. 28 oct. 2021, 20:24
Localisation : Annemasse

Re: [Question] PKBUILD

Message par dexter74 »

Bonjour,

Merci pour vos conseil. Je rencontre un problème sur le module user@user qui est absent lors du démarrage du liveCD, seriez vous pourquoi ?



---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Dépendances:

Code : Tout sélectionner

sudo pacman -Sy --noconfirm ack appstream-qt boost cmake extra-cmake-modules kcoreaddons kiconthemes kio kparts kservice kpmcore plasma-framework;
sudo pacman -Sy --noconfirm python-pip python-qt.py python-yaml qt5-declarative qt5-location qt5-tools qt5-xmlpatterns qt5-webengine yaml-cpp;
yay    -Sy --noconfirm icecream pythonqt qt

Code : Tout sélectionner

pkgname=calamares
pkgver=3.2.61
pkgrel=1
pkgdesc='Installateur Calamares by Drthrax74'
arch=('x86_64')
makedepends=( 'ack' 'appstream-qt' 'autoconf' 'automake' 'binutils' 'bison' 'boost' 'cmake' 'extra-cmake-modules' 'fakeroot' 'flex'
	      'gcc' 'gcc-libs-multilib' 'gcc-multilib' 'git' 'icu'  'kcoreaddons' 'kiconthemes' 'kio' 'kparts' 'kservice' 'kpmcore'
	      'libtool' 'm4' 'make' 'os-prober' 'patch' 'plasma-framework' 'python' 'python3' 'python-pip' 'python-qt.py' 'python-yaml'
	      'qt5-declarative' 'qt5-location' 'qt5-tools' 'qt5-translations' 'qt5-xmlpatterns' 'qt5-webengine' 'yaml-cpp')
license=('GPL3')
source=("https://github.com/calamares/calamares/releases/download/v$pkgver/$pkgname-$pkgver.tar.gz")
sha256sums=('7591b9b60738bdba7b9de2b8da5462ab21006db06a006f0dd21ac5b832711dd2')


prepare(){
	cd $pkgname-$pkgver;
}

build(){
	cd $pkgname-$pkgver;
	mkdir build;
	sed -i -e 's/"Install configuration files" OFF/"Install configuration files" ON/g' CMakeLists.txt
	cp settings.conf ./build/
	cd build;
	cmake -DCMAKE_BUILD_TYPE=Debug ..
}

package(){
	cd $pkgname-$pkgver/build;
	make j$(nproc) DESTDIR="$pkgdir/" install
}
Note:

Code : Tout sélectionner

- Partition 1: FAT /boot
- Partition 2: LVM (/, /home, /Backup)
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17180
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [Question] PKBUILD

Message par benjarobin »

Pourquoi tu ne mets pas les dépendances dans le fichier pkgbuild ?

C'est normal que tu ne build pas ? Tu appelles cmake mais jamais make ensuite...
Il est interdit de build dans package

Je ne sais pas ce que tu entends par le module user@user
Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
dexter74
Daikyu
Messages : 53
Inscription : jeu. 28 oct. 2021, 20:24
Localisation : Annemasse

Re: [Question] PKBUILD

Message par dexter74 »

Bonjour,

je viens de faire les modifications en dépendances. Par contre je comprends pas l'argument make dans ton commentaire ?


Pour l'erreur:

Image



Image


Code : Tout sélectionner

pkgname=calamares
pkgver=3.2.61
pkgrel=1
pkgdesc='Installateur Calamares by Drthrax74'
arch=('x86_64')
depends=( 'ack' 'appstream-qt' 'autoconf' 'automake' 'binutils' 'bison' 'boost' 'cmake' 'extra-cmake-modules' 'fakeroot' 'flex'
	      'gcc' 'gcc-libs-multilib' 'gcc-multilib' 'git' 'icu'  'kcoreaddons' 'kiconthemes' 'kio' 'kparts' 'kservice' 'kpmcore'
	      'libtool' 'm4' 'make' 'os-prober' 'patch' 'plasma-framework' 'python' 'python3' 'python-pip' 'python-qt.py' 'python-yaml'
	      'qt5-declarative' 'qt5-location' 'qt5-tools' 'qt5-translations' 'qt5-xmlpatterns' 'qt5-webengine' 'yaml-cpp')
license=('GPL3')
source=("https://github.com/calamares/calamares/releases/download/v$pkgver/$pkgname-$pkgver.tar.gz")
sha256sums=('7591b9b60738bdba7b9de2b8da5462ab21006db06a006f0dd21ac5b832711dd2')


prepare(){
	cd $pkgname-$pkgver;
}

build(){
	cd $pkgname-$pkgver;
	mkdir build;
	sed -i -e 's/"Install configuration files" OFF/"Install configuration files" ON/g' CMakeLists.txt
	cp settings.conf ./build/
	cd build;
	cmake -DCMAKE_BUILD_TYPE=Debug ..
}

package(){
	cd $pkgname-$pkgver/build;
	make DESTDIR="$pkgdir/" install
}
Note:

Code : Tout sélectionner

- Partition 1: FAT /boot
- Partition 2: LVM (/, /home, /Backup)
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17180
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [Question] PKBUILD

Message par benjarobin »

As tu lu la documentation pour l'intégration de calamares à une distribution : https://github.com/calamares/calamares/ ... uide#build ?
Ce n'est pas clé en main. Il faut personnalisé la chose du peu que j'en ai lu.
Et pour build et packages, c'est toujours 3 étapes, Build : "cmake", "make", et enfin package : "make install"
Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
dexter74
Daikyu
Messages : 53
Inscription : jeu. 28 oct. 2021, 20:24
Localisation : Annemasse

Re: [Question] PKBUILD

Message par dexter74 »

Bonjour,

Pour la documentation, je l'ai lu mais elle est pas clair du tout .

Je rencontre un problème pour inclure le fichier settings.conf dans mon package et sera bon.

Je vois le fichier settings:

Code : Tout sélectionner

/home/marc/Documents/src/calamares-custom/build/settings.conf

Code : Tout sélectionner

pkgname=calamares
pkgver=3.2.61
pkgrel=1
pkgdesc='Installateur Calamares by Drthrax74'
arch=('x86_64')
depends=( 'ack' 'appstream-qt' 'autoconf' 'automake' 'binutils' 'bison' 'boost' 'cmake' 'extra-cmake-modules' 'fakeroot' 'flex'
	      'gcc' 'gcc-libs-multilib' 'gcc-multilib' 'git' 'icu' 'kcoreaddons' 'kiconthemes' 'kio' 'kparts' 'kservice' 'kpmcore'
	      'libtool' 'libpwquality' 'm4' 'make' 'os-prober' 'patch' 'plasma-framework' 'python' 'python3' 'python-pip' 'python-qt.py' 'python-yaml'
	      'qt5-declarative' 'qt5-location' 'qt5-tools' 'qt5-translations' 'qt5-xmlpatterns' 'qt5-webengine' 'yaml-cpp')
license=('GPL3')
source=("git+https://github.com/dexter74/calamares-custom.git")
sha256sums=('SKIP')

prepare(){
	mkdir calamares-custom/build;
	cp  ${srcdir}/calamares-custom/settings.conf  ${srcdir}/calamares-custom/build;
	}

build(){
cd ${srcdir}/calamares-custom/build;
	cmake .. \
		-DCMAKE_BUILD_TYPE=Release \
		-DCMAKE_INSTALL_PREFIX=/usr \
		-DCMAKE_INSTALL_LIBDIR=lib \
              	-DWITH_PYTHONQT=OFF \
		-DWITH_KF5DBus=ON \
              	-DBoost_NO_BOOST_CMAKE=ON \
		-DWEBVIEW_FORCE_WEBKIT=OFF \
 		-DSKIP_MODULES=""
	make -j$(nproc)
}

package(){
	cd ${srcdir}/calamares-custom/build;
	make -j$(nproc) DESTDIR="$pkgdir" install
}
Note:

Code : Tout sélectionner

- Partition 1: FAT /boot
- Partition 2: LVM (/, /home, /Backup)
Répondre