[dwm] PKGBUILD autorisant la config personnalisée (résolu)

Mise à jour / Création /debug de paquetages
Répondre
bobo
Elfe
Messages : 593
Inscription : mar. 08 avr. 2014, 22:47

[dwm] PKGBUILD autorisant la config personnalisée (résolu)

Message par bobo »

Je soumets mon test de PKGBUILD à votre régard :

Code : Tout sélectionner

pkgname=dwm-custom
pkgver=6.1
pkgrel=1
pkgdesc="A dynamic window manager for X"
url="http://dwm.suckless.org"
arch=('i686' 'x86_64')
license=('MIT')
options=(zipman)
depends=('libx11' 'libxinerama' 'libxft' 'freetype2' 'dwm')    ## dépend de dwm pour les manuels et licences
install=dwm-custom.install
source=(http://dl.suckless.org/dwm/dwm-$pkgver.tar.gz)
md5sums=('f0b6b1093b7207f89c2a90b848c008ec')

prepare() {
  cd $srcdir/dwm-$pkgver

## apply $USER patches & settings
  for patch in `\ls /home/$USER/compil/dwm-$pkgver/*.diff`
  do
    echo "===> $patch <==="
    patch -p1 -l < $patch
  done

## remove any reference to MAN, to make sure to install bin only
  mv Makefile Makefile.orig
  grep -v "MANPREFIX" Makefile.orig > Makefile
  \rm Makefile.orig

## take user config.h into account
# TODO

}

build() {
  cd $srcdir/dwm-$pkgver
  make X11INC=/usr/include/X11 X11LIB=/usr/lib/X11 FREETYPEINC=/usr/include/freetype2
}

package() {
  cd $srcdir/dwm-$pkgver
  make PREFIX=/home/$USER DESTDIR=$pkgdir install

## ignore anything else than binary
#  install -m644 -D LICENSE $pkgdir/usr/share/licenses/$pkgname/LICENSE
#  install -m644 -D README $pkgdir/usr/share/doc/$pkgname/README
#  install -m644 -D $srcdir/dwm.desktop $pkgdir/usr/share/xsessions/dwm.desktop

## clean up source to allow to run make again without breaking
  cd ../..
  rm -rf $srcdir
}
Il s'agit d'un PKGBUILD pour l'installation personnalisée par utilisateur de dwm, avec patchage maison :
– dépend du paquet dwm pour les licences, man et README
– les patches « utilisateur » sont appliquer automatiquement en chercher les .diff dans un répertoire qui va bien
– un paquet dwm-bobo-$pkgver.tar.xz est créé

Je me suis arrêté quand j'ai réalisé que l'installation via pacman dans le home de l'utilisateur n'était peut-être pas souhaitable. Je ne sais pas ce que vous en pensez.

Verriez-vous un workflow qui permettrait de distribuer ce PKGBUILD "dwm-custom" dans AUR ?
Dernière modification par bobo le mar. 24 nov. 2015, 12:02, modifié 3 fois.
dwm — BÉPO — vim — “more is less !”
Avatar de l’utilisateur
FoolEcho
Maître du Kyudo
Messages : 10707
Inscription : dim. 15 août 2010, 11:48
Localisation : Basse-Normandie

Re: [dwm] test d'un PKGBUILD autorisant la config personnalisé

Message par FoolEcho »

bobo a écrit :Je me suis arrêté quand j'ai réalisé que l'installation via pacman dans le home de l'utilisateur n'était peut-être pas souhaitable. Je ne sais pas ce que vous en pensez.
Qu'une telle installation est totalement à proscrire. :|
«The following statement is not true. The previous statement is true.» :nage:
bobo
Elfe
Messages : 593
Inscription : mar. 08 avr. 2014, 22:47

Re: [dwm] test d'un PKGBUILD autorisant la config personnalisé

Message par bobo »

C'est bien ce que je me disais :D En tout cas, ça a été drôle de jouer avec makepkg.

La configuration utilisateur de dwm passe par la recompilation du binaire après modification des sources. Du coup le mieux c'est d'avoir le binaire dans le home de l'utilisateur. Comme j'ai pu l'expérimenter, le PKGBUILD peut prendre en charge toutes les manips' de compilation de dwm. Je me demande s'il est possible en l'état de détourner du pacman/yaourt pour gérer les binaires utilisateurs avec un système à base de PKGBUILD.

Édition:
Le plus simple serait sans doute de documenter une méthode d'installation à partir de makepkg directement
dwm — BÉPO — vim — “more is less !”
Avatar de l’utilisateur
Xorg
Maître du Kyudo
Messages : 1933
Inscription : dim. 22 janv. 2012, 19:25
Localisation : Entre le clavier et la chaise.

Re: [dwm] PKGBUILD autorisant la config personnalisée (clos)

Message par Xorg »

Disons que de manière générale, un gestionnaire de paquets NE DOIT PAS toucher au répertoire personnel de l'utilisateur (donc un PKGBUILD ne doit pas contenir de références vers /home).
Mais après, rien interdit de mettre lesdits fichiers dans un répertoire tel /usr/share/blablabla. Et puis, chose qui n'est pas impossible de faire, c'est de créer un script qui permet de copier ces fichiers depuis /usr/share/blablabla vers le répertoire personnel, script qui peut être ajouté au paquet. Après il faut garder en tête qu'il faut avertir l'utilisateur qu'un tel script n'est pas officiel et qu'il l'utilise à ses risques et périls. Il faut que la personne qui écrit le script prenne toutes les précautions nécessaires (comme ne pas effacer des fichiers de l'utilisateur, écraser des fichiers qui existent déjà sans les sauvegarder, ...).
Enfin, il y a toujours moyen de bricoler quelque chose quand on veut automatiser une tâche. :)
Arch Linux x86_64 - Sway
AMD Ryzen 5 3600X - 32 Go de DDR4 - SSD NVMe 1 To + SSD SATA 250 Go - Sapphire NITRO+ Radeon RX 580
Image AUR___Image Wiki___Image GitHub
bobo
Elfe
Messages : 593
Inscription : mar. 08 avr. 2014, 22:47

Re: [dwm] PKGBUILD autorisant la config personnalisée (clos)

Message par bobo »

Merci Xorg !!

Ça ça pourrait être marrant : un PKGBUILD fourni par un paquet, avec script makepkg pour compiler est installer le binaire dans le /home/$USER/bin, en appliquant patches et config.h à partir de la structure de fichier de /home/$USER/.config/dwm
dwm — BÉPO — vim — “more is less !”
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17288
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [dwm] PKGBUILD autorisant la config personnalisée (clos)

Message par benjarobin »

Non, cela reste une mauvaise idée. Par contre tu peux très bien faire un script reprenant l'idée du PKGBUILD mais ne créant pas de paquet ni utilisant makepkg.
Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Avatar de l’utilisateur
Xorg
Maître du Kyudo
Messages : 1933
Inscription : dim. 22 janv. 2012, 19:25
Localisation : Entre le clavier et la chaise.

Re: [dwm] PKGBUILD autorisant la config personnalisée (clos)

Message par Xorg »

bobo a écrit :script makepkg pour compiler est installer le binaire dans le /home/$USER/bin
Je pense que tu n'as pas compris ce que j'ai dit plus haut. Ton PKGBUILD décrit à makepkg tout ce dont il a besoin pour créer le paquet binaire. Donc toutes références vers /home est à proscrire d'un paquet.

L'idée c'est de faire un script qui copie ce que tu as à copier dans le $HOME, mais ce script ne doit pas intervenir dans le création d'un paquet (genre l'exécuter directement depuis le PKGBUILD ou bien depuis un fichier .install).
Arch Linux x86_64 - Sway
AMD Ryzen 5 3600X - 32 Go de DDR4 - SSD NVMe 1 To + SSD SATA 250 Go - Sapphire NITRO+ Radeon RX 580
Image AUR___Image Wiki___Image GitHub
bobo
Elfe
Messages : 593
Inscription : mar. 08 avr. 2014, 22:47

Re: [dwm] PKGBUILD autorisant la config personnalisée (clos)

Message par bobo »

OK, je retiens que makepkg est dédié à la création de paquet système (à utiliser avec les droits administrateurs, pour le suivi centralisé du contenu des dossiers systèmes). Un script d'installation automatisé ne doit pas utiliser makepkg. Il peut être rendu dispo dans un paquet .tar.xz en l'installant dans l'arborescence qui va bien "/usr/share/…". Et serait à exécuter par l'utilisateur lui-même.

Merci pour m'avoir aidé à mettre au point ce scénario (en espérant que j'ai bien compris). Ce serait bien que je m'y colle : je verrais bien un dépôt git pour centralisé les patches, en pushant les sources dwm dedans.
dwm — BÉPO — vim — “more is less !”
Avatar de l’utilisateur
Xorg
Maître du Kyudo
Messages : 1933
Inscription : dim. 22 janv. 2012, 19:25
Localisation : Entre le clavier et la chaise.

Re: [dwm] PKGBUILD autorisant la config personnalisée (résolu)

Message par Xorg »

Si tu veux, pour détailler mes propos, j'avais été confronté à un problème presque similaire une fois : je voulais pouvoir utiliser MemTest86 (car depuis la version 5.0, c'est un exécutable EFI), mais il n'y avait pas de paquet le distribuant dans ArchLinux.
Ainsi, j'ai créé le paquet memtest86-efi, qui au final ne fait qu'installer ses fichiers dans /usr/share/memtest86-efi/. Bien entendu, ce n'est pas un répertoire d'amorce, mais je ne peux pas me permettre de mettre le fichier dans l'ESP pour plusieurs raisons (l'ESP est-il monté ? Si oui où ça ? Où le placer dans l'ESP ? Comment amorcer ce fichier ? Etc...).
J'ai donc écrit un script, memtest86-efi, que j'ai intégré au paquet. Ce script aide les utilisateurs à installer les fichiers dans l'ESP (plusieurs méthodes sont proposées, ils prennent celle qui correspond le plus à leurs attentes), ils l'utilisent à leurs risques et périls, rien ne les oblige à utiliser ce script (ils peuvent très bien faire les manipulation à la main après tout).
En bref, c'est pour dire que le paquet en lui-même fait rien, il place des fichiers dans un répertoire, mais ça n'a pas d'incidence sur le système.

Tu parles de faire un script d’installation automatisée qui utiliserait makepkg. Si tu veux tu ne peux pas faire ça car ça revient en fin de compte à créer un paquet qui installera dans fichiers dans le /home dans tous les cas. Tu peux faire un script d’installation automatisée, mais oublie makepkg pour toucher au /home (autant écrire un script qui fonctionnera sur toutes les distributions, ça sera sans doute plus utile :wink: ).

Je t'invite à jeter un œil ici, pour te monter qu'on ne te dit pas ça pour t'embêter mais que c'est un standard de paquetage. :)
Arch Linux x86_64 - Sway
AMD Ryzen 5 3600X - 32 Go de DDR4 - SSD NVMe 1 To + SSD SATA 250 Go - Sapphire NITRO+ Radeon RX 580
Image AUR___Image Wiki___Image GitHub
bobo
Elfe
Messages : 593
Inscription : mar. 08 avr. 2014, 22:47

Re: [dwm] PKGBUILD autorisant la config personnalisée (résolu)

Message par bobo »

Merci pour le lien !

Je ne l'avais pas pris mal, si ça peut te rassurer. C'est justement pour obtenir ce type de retour que j'ai soumis mon approche. Je voyais bien que quelque chose clochait, mais n'arrivais pas à mettre le doigt dessus, tant j'étais sous le charme de la hackabilité des PKGBUILDs.
dwm — BÉPO — vim — “more is less !”
bobo
Elfe
Messages : 593
Inscription : mar. 08 avr. 2014, 22:47

Re: [dwm] PKGBUILD autorisant la config personnalisée (résolu)

Message par bobo »

Je viens de créer un fil sur le script d'install perso que j'ai créé :
viewtopic.php?f=13&t=17807#p150171
dwm — BÉPO — vim — “more is less !”
Répondre