Créer PKGBUILD à partir de .deb

11

J'ai un .debpaquet Debian qui contient essentiellement les binaires du logiciel sous forme de /usr/share/bindossier dans un datafichier compressé , et un autre fichier compressé de métadonnées contenant les sommes de contrôle des autres fichiers.

Mon objectif est de créer un PKGBUILDpour installer correctement un tel paquet .deb sur archlinux.

Quelle est la bonne façon de procéder?

Est-ce suffisant pour copier le contenu de ce /usr/share/binrépertoire dans l' pkg /usr/share/binenvironnement fakeroot en utilisant la build()fonction? Le dossier sera copié à l' /usr/share/binemplacement réel lorsque le package généré est réellement installé?

Manu343726
la source
6
Essentiellement, oui (sauf utiliser la fonction package). Regardez dans l'AUR pour d'autres paquets se terminant par -binet utilisez la même approche ...
jasonwryan

Réponses:

9

Oui, cela fonctionnera de la même manière que les autres PKGBUILD avec des sources binaires - extrayez-le et copiez les fichiers. La seule chose qui devrait être mentionné est que deb-archives se compose de 3 autres fichiers - debian-binary, control.tar.gz, data.tar.gz. makepkg extraira uniquement les archives de premier niveau, puis vous devez extraire manuellement data.tar.gz.

prepare() {
    tar -zxvf data.tar.gz
}

package() {
    # copy files
}

Alternativement, vous pouvez placer deb-archive dans le tableau noextract puis extraire manuellement uniquement data.tar.gz:

$ ar p source.deb data.tar.gz | tar zx
diffycat
la source
makepkgchange le répertoire courant $srcdiravant d'exécuter des fonctions, vous n'avez donc plus besoin de l'inclure ...
jasonwryan
@jasonwryan, plusieurs développeurs ont déclaré qu'il n'y a aucune garantie que cela restera vrai. Par souci de longévité, il peut être judicieux de laisser la cd "${srcdir}"ligne habituelle en place.
HalosGhost
1
@HalosGhost Je n'avais pas entendu ça. Par la même logique, il n'y a aucune garantie que cela deviendra faux ... :)
jasonwryan