Page 1 sur 1

[Question] PKBUILD

Publié : lun. 30 janv. 2023, 01:33
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

Re: [Question] PKBUILD

Publié : lun. 30 janv. 2023, 08:31
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:)

Re: [Question] PKBUILD

Publié : lun. 30 janv. 2023, 14:04
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
}
######################################################################################################################################################################################################

Re: [Question] PKBUILD

Publié : lun. 30 janv. 2023, 15:47
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

Re: [Question] PKBUILD

Publié : lun. 30 janv. 2023, 18:04
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

Re: [Question] PKBUILD

Publié : lun. 30 janv. 2023, 21:35
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
}

Re: [Question] PKBUILD

Publié : lun. 30 janv. 2023, 22:18
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

Re: [Question] PKBUILD

Publié : lun. 30 janv. 2023, 23:26
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
}

Re: [Question] PKBUILD

Publié : mar. 31 janv. 2023, 13:21
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"

Re: [Question] PKBUILD

Publié : mar. 31 janv. 2023, 22:59
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
}