web-dev-qa-db-fra.com

Icônes de la barre d'outils Emacs manquantes dans Ubuntu-16.10, difficulté à compiler emacs24 et 25

J'écris pour voir si vous avez essayé de compiler Emacs récemment. Je veux compiler emacs-25.1 mais je rencontre une erreur de segmentation. Si vous vous demandez pourquoi je veux compiler, ou pourquoi je pose la question ici, lisez la suite ...

Je suis passé à Ubuntu 16.10 aujourd'hui et emacs-24.5 fonctionne toujours, mais les icônes de la barre d'outils sont devenues invisibles. Après une quantité appropriée de recherches sur Google, j'ai découvert que ce problème était apparu au fil du temps, qu'il s'agisse généralement d'une faille dans gtk +, du thème du bureau ou d'Emacs lui-même. Les publications les plus récentes semblent indiquer qu'il y avait un bogue dans le code Emacs qui a été corrigé depuis ( https://bugs.archlinux.org/task/48862 ).

Je pensais que j'essaierais emacs25, voir si c'est corrigé là-bas. Beaucoup de gens suggèrent d'utiliser le repo proposé ici, (deb http://ppa.launchpad.net/adrozdoff/emacs/ubunt yakkety main), cependant celui-ci est refusé par apt-get pour une raison quelconque n'a pas vu avant:

W: The repository 'http://ppa.launchpad.net/adrozdoff/emacs/ubuntu yakkety Release' does not have a Release file.
N: Data from such a repository can't be authenticated and is therefore potentially dangerous to use.

Cela ne me dérange pas de compiler des programmes, je vais donc avancer.

Ma première idée était de prendre le packaging source source de ce site Web, mais essayer de le construire aboutissait à une erreur de segmentation.

En supposant qu'il y ait quelque chose qui cloche dans cet emballage, j'ai essayé de construire à partir des sources. Je termine par la même faute de segmentation:

$ wget http://ftp.gnu.org/gnu/emacs/emacs-25.1.tar.gz
$ tar xzvf emacs-25.1.tar.gz
$ cd emacs-25.1
$ ./configure --prefix=/usr/local
$ make

Après quelques milliers de lignes, je reçois le même défaut que celui que j'ai vu reconstruire le package

Loading emacs-LISP/eldoc...
Loading cus-start...
Loading tooltip...
Loading /home/pauljohn/LinuxDownloads/Ubuntu/sources/emacs/emacs-25.1/LISP/leim/leim-list.el (source)...
Finding pointers to doc strings...
Finding pointers to doc strings...done
Dumping under the name emacs
Makefile:736: recipe for target 'bootstrap-emacs' failed  
make[1]: *** [bootstrap-emacs] Segmentation fault (core dumped)
make[1]: Leaving directory '/home/pauljohn/LinuxDownloads/Ubuntu/sources/emacs/emacs-25.1/src'
Makefile:398: recipe for target 'src' failed
make: *** [src] Error 2

Bien que googler le message d'erreur, je ne trouve pas de solution. Bien sûr, je trouve beaucoup de défauts dans emacs au fil du temps, mais ils donnent généralement un message plus informatif. Je pense la mention du Makefile: 736 fait référence au Makefile dans le répertoire src:

bootstrap-emacs$(EXEEXT): temacs$(EXEEXT)
        $(MAKE) -C ../LISP update-subdirs
ifeq ($(CANNOT_DUMP),yes)
        ln -f temacs$(EXEEXT) $@
else
        $(RUN_TEMACS) --batch --load loadup bootstrap
   ifneq ($(PAXCTL_dumped),)
        $(PAXCTL_dumped) emacs$(EXEEXT)
   endif
        mv -f emacs$(EXEEXT) $@
endif

Je n'ai pas été dans cette situation depuis longtemps.

J'ai trouvé des pages sur les défauts de construction passés Emacs

1 https://bbs.archlinux.org/viewtopic.php?id=197841 . Dans Arch Linux, un paquet "de renforcement" a été installé et Emacs échouait à cause de cela. J'ai découvert que j'avais un paquet "hardening-includes" d'Ubuntu 16.10 et je l'ai enlevé pour voir si le résultat changerait. Non!

2 https://lists.gnu.org/archive/html/bug-gnu-emacs/2015-04/msg00371.html . Il y avait un drapeau de compilateur errant. Je n'ai pas ce drapeau.

3 http://emacs.1067599.n8.nabble.com/bug-20190-Building-emacs-24-4-against-GCC-5-0-td352965.html indique qu'il y avait un environnement drapeau qui était à blâmer. Je n'ai pas ça.

Le processus de rapport de bogue Emacs ( https://debbugs.gnu.org/Emacs.html ) m’est difficile. Je ne vois pas comment soumettre un nouveau bogue.

J'ai téléchargé l'intégralité de configure/make dans le cas où cela serait informatif:

http://pj.freefaculty.org/scraps/emacs-build-fail-20161013.txt

6
pauljohn32

Après un peu de repos, j'ai découvert que ce problème avait été découvert avant la publication de Yakkety Yak, mais que le correctif n'était pas inclus dans les packages. Si vous regardez ici

https://bugs.launchpad.net/ubuntu/+source/emacs24/+bug/1623585

vous devriez trouver mon message vers la fin indiquant que j'ai reconstruit la source du paquet mentionné, et je peux confirmer qu'il est bien construit et que les icônes de la barre d'outils Emacs réapparaîtront.

3
pauljohn32

Par souci d’exhaustivité, il semble que la raison pour laquelle emacs 25 ne fonctionnera pas correctement sous Ubuntu 16.10 est due à des modifications des indicateurs par défaut utilisés par gcc sous Ubuntu 16.10. Pour que compile emacs à construire, vous devez ajouter -no-pie aux drapeaux. Les travaux suivants:

$ ./autogen.sh
$ ./configure CFLAGS=-no-pie <other configure options>

jusqu'à ce qu'une mise à jour soit faite dans le dépôt git

2
Tim X