DFLinux + bogue dans le Makefile
#1

Salut Wink

@ arpinux/thuban : Il y a visiblement un bogue mineur dans le Makefile du constructeur de DFLinux. Pour information l'image iso de dFLinux i386 a été construite sur FreeBSD mais la fin de la construction se termine par ce message :

Code :
[2016-12-18 03:18:31] lb source
# renommer les fichiers
mkdir -p dfl386
mv live-image-i386.hybrid.iso dfl386/dflinux-i386.iso
mv chroot.packages.install dfl386/dflinux-i386.pkgs
mv *.log dfl386/dflinux-i386.log
mv: target 'dfl386/dflinux-i386.log' is not a directory
Makefile:11: recipe for target '32b' failed
make: *** [32b] Error 1

Et effectivement la commande `ls -lh dfl386/` renvoie :

Code :
total 1.3G
-rw-r--r-- 1 root root 1.3G Dec 18 02:16 dflinux-i386.iso
-rw-r--r-- 1 root root  41K Dec 18 01:30 dflinux-i386.pkgs

donc le répertoire `dflinux-i386.log`n'existe pas.

La version des sources que j'ai utilisée pour la construction est :

Code :
DFiso-master-e77476f6a5e127c698dacf7627b44eea29b1b471

J'espère avoir aidé votre projet ! Wink

@+
kuniyoshi le testeur fou Smile

Un OS pour les gouverner tous (FreeBSD), un jail pour les trouver (Unbound)
Un filesystem pour les amener tous et dans les ténèbres les lier (ZFS) ;)
Répondre
#2

Vu, merci
Répondre
#3

Faut bien que mes tests servent ! Wink

Un OS pour les gouverner tous (FreeBSD), un jail pour les trouver (Unbound)
Un filesystem pour les amener tous et dans les ténèbres les lier (ZFS) ;)
Répondre
#4

le .log n'est pas un répertoire mais un fichier à vrai dire.
C'est étonnant qu'il ne soit pas présent lors de tes tests, il est automatiquement créé lors du lb-build.
Tu es dans le dossier des sources lorsque tu lances le make je suppose ? (question débile)
Répondre
#5

Ok. Je viens de comprendre la cause du bogue. Comme depuis hier j'ai effectué plusieurs constructions infrutueuses, j'ai "entassé" les fichiers au format log. The proof ci-dessous :

Code :
# ls -lh
total 9666
drwxr-xr-x   2 root  wheel    30B Dec 18 02:18 .build
-rw-rw-r--   1 root  wheel   129B Nov 25 23:06 .gitignore
-rw-rw-r--   1 root  wheel   2.7K Nov 25 23:06 CHANGELOG
-rw-rw-r--   1 root  wheel    32K Nov 25 23:06 LICENSE
-rw-rw-r--   1 root  wheel   1.5K Nov 25 23:06 Makefile
-rw-rw-r--   1 root  wheel   196B Nov 25 23:06 README.md
-rw-rw-r--   1 root  wheel    18B Nov 25 23:06 TODO.md
-rw-rw-r--   1 root  wheel    63B Nov 25 23:06 VERSION.md
drwxrwxr-x   2 root  wheel     4B Nov 25 23:06 addons
drwxrwxr-x   2 root  wheel     7B Dec 17 23:48 auto
drwxr-xr-x  10 root  wheel    13B Dec 18 02:14 binary
drwxr-xr-x  10 root  wheel    10B Dec 18 01:42 cache
drwxr-xr-x  21 root  wheel    25B Dec 18 02:18 chroot
-rw-r--r--   1 root  wheel   8.1M Dec 18 01:35 chroot.files
-rw-r--r--   1 root  wheel    41K Dec 18 01:34 chroot.packages.live
drwxrwxr-x  11 root  wheel    17B Dec 17 23:48 config
drwxr-xr-x   2 root  wheel     4B Dec 18 02:18 dfl386
-rw-r--r--   1 root  wheel    23K Dec 17 23:53 dflinux-20161218-0048.log
-rw-r--r--   1 root  wheel    17K Dec 18 00:30 dflinux-20161218-0127.log
-rw-r--r--   1 root  wheel   803K Dec 18 02:18 dflinux-20161218-0131.log
drwxrwxr-x   3 root  wheel    13B Nov 25 23:06 doc
-rwxrwxr-x   1 root  wheel   211B Nov 25 23:06 latotale
-rw-r--r--   1 root  wheel    28K Dec 18 02:14 live-image-i386.contents
-rw-r--r--   1 root  wheel   8.1M Dec 18 02:10 live-image-i386.files
-rw-r--r--   1 root  wheel   4.9M Dec 18 02:17 live-image-i386.hybrid.iso.z
-rw-r--r--   1 root  wheel    41K Dec 18 02:10 live-image-i386.packages
drwxrwxr-x   2 root  wheel     5B Nov 25 23:06 ressources

Par conséquent, lorsque le shell arrive sur la ligne `mv *.log dfl386/dflinux-i386.logsync` du Makefile, il l'interprète comme "tu me déplaces tous les fichiers log dans le répertoire `dfl386/dflinux-i386.log`" qui n'existe pas. D'où le bogue. CQFD ! Wink

Je propose d'ajouter une ligne dans le `clean` ou le 'cleanfull` ou du fichier `àuto/clean` pour écraser d'éventuels fichiers log qui seraient liés à d'anciennes constructions.

Qu'en penses-tu thuban ?

ps : Par contre, je trouve étrange que vous n'ayez pas encore rencontré ce bogue... notamment en lançant la `latotale` ?! Étrange !!! Wink

Un OS pour les gouverner tous (FreeBSD), un jail pour les trouver (Unbound)
Un filesystem pour les amener tous et dans les ténèbres les lier (ZFS) ;)
Répondre
#6

salut Smile
le makefile renomme et déplace les fichiers donc aucun soucis si les builds se réalisent sans erreur. si il y a une erreur, le /log reste là, et je le consulte. si il n'y a pas d'erreur, le build se termine, le log est renommé puis déplacé dans le dossier approprié Smile

nous sommes tous différents ... c'est notre point commun ...
Répondre
#7

Salut arpinux Smile

Citation :le makefile renomme et déplace les fichiers donc aucun soucis si les builds se réalisent sans erreur.

Ok.

Citation :si il y a une erreur, le /log reste là, et je le consulte.

Ok. Et après l'avoir consulté tu l'écrases. C'est ça ?...

Citation :si il n'y a pas d'erreur, le build se termine, le log est renommé puis déplacé dans le dossier approprié

... sinon il y a au moins deux fichiers de type ".log" du style 1.log, 2.log, 3.log, ... et la commande du Makefile

Code :
mv *.log dfl386/dflinux-i386.log

ou...

Code :
mv *.log dfl64/dflinux-amd64.log

... essaie, dans ce cas de figure, de déplacer tous les fichiers au format ".log" (1.log, 2.log, 3.log, ...) dans un répertoire (il s'agit de l'interprétation du shell) qui se nomme dflinux-i386.log (ou dflinux-amd64.log selon la construction). Or, ce répertoire n'existe pas, et pour cause, puisqu'il s'agit de déplacer un fichier (ex : 1.log) vers un fichier dfl386/dflinux-i386.log (ou dfl386/dflinux-amd64.log selon). arpinux, si tu n'écrases pas au préalable le fichier log intermédiaire, une erreur de ce type se produit (pour un même type de construction : i386 ou amd64). Qu'en penses-tu ? Wink

Un OS pour les gouverner tous (FreeBSD), un jail pour les trouver (Unbound)
Un filesystem pour les amener tous et dans les ténèbres les lier (ZFS) ;)
Répondre
#8

ah non, mais le makefile, si il y a une erreur, se stoppe et effectivement, je consulte le log puis je le supprime puisque le build a échoué Smile

le makefile ne gère pas les erreurs, j'ai pas cherché à le faire comme ça. c'est simplement un script de construction.

nous sommes tous différents ... c'est notre point commun ...
Répondre
#9

Citation :ah non, mais le makefile, si il y a une erreur, se stoppe et effectivement, je consulte le log puis je le supprime puisque le build a échoué ?

Ok. Tout s'explique ! Wink

Citation :le makefile ne gère pas les erreurs, j'ai pas cherché à le faire comme ça. c'est simplement un script de construction.

Beau script... belle non-distribution ! Smile

@+ arpinux

Un OS pour les gouverner tous (FreeBSD), un jail pour les trouver (Unbound)
Un filesystem pour les amener tous et dans les ténèbres les lier (ZFS) ;)
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)