Notxor tiene un blog

Defenestrando la vida

Problemas con Emacs 27 en OpenSuse Tumbleweed

2020-08-28

Llevo unos días, desde que apareció la versión 27.1 de Emacs en el repositorio de OpenSuse Tumbleweed ─la distribución de GNU/Linux que utilizo─, con un problema persistente durante la ejecución de mi editor favorito: Emacs.

Wrong type argument: stringp, (require . info)

Además lo hacía de forma intermitente y no muy consistente. Por poner un ejemplo, cuando lanzaba el editor en una consola proporcionándole el fichero que quería editar, digamos tal que así:

emacs -nw ~/proyectos/miproyecto/fichero.erl

El erlang-mode funcionaba sin ningún problema y podía editar el código con la comodidad que proporciona su modo correspondiente... Aparecían otros problemas, por ejemplo al abrir un directorio en Dired, mostraba un warning tal que:

Warning (emacs): Fail create hash table
  buffer: #<buffer :~/proyectos/miproyecto/>
  stdout:
  reason: (end-of-file)

No le di mucha importancia, porque pensaba que era algún paquete obsoleto de versiones anteriores y no me puse a buscar por pereza: cargar el depurador, ejecutar el init.el paso a paso a ver qué paquete da por culo, intentar arreglar el fallo o condenarlo al ostracismo hasta que el mantenedor lo arregle. En fin, un montón de incomodidades que asumir cuando la molestia era mínima: podía trabajar con normalidad.

El problema fue cuando hace dos días dejó de funcionar magit; esto ya no era tolerable y me puse a indagar cómo solucionar el problema. Y como he dicho antes, comencé a cargar el init.el poco a poco... no encontré nada.

Cambié de filosofía: arrancar con Emacs pelado e ir haciendo la carga de paquetes uno a uno, sólo los necesarios. El problema persistía, sin inmutarse, incluso cargando Emacs con la opción -q.

Busqué información del error por los foros y la wiki de Emacs y no encontré nada. Pregunté a algunos amigos que saben de esto mucho más que yo y no encontré respuesta: a todo el mundo le funcionaba la versión 2.7 perfectamente. La conclusión de esa investigación: «debo ser yo»... bueno, más bien debe ser mi configuración o algo ¿Habré depurado mal?

Pues nada, a insistir. Habré depurado mi init.el como tres o cuatro veces. No ha sido tiempo perdido porque encontré algunas cosas mejorables que he aprovechando que por Valladolid pasa el Pisuerga... sin embargo, el problema persistía contumaz. Tan cabezón él, que estuvo a punto de ganarme en cabezonería.

De casualidad, me dio por arrancar una de las veces el Emacs llamando a /usr/bin/emacs-gtk y... el problema no existe. ¿Cómo? ¿Qué está pasando aquí? Pues eso, que el problema no está en Emacs sino en otro sitio. Investigando un poco, he visto que en mi sistema están instalados varios ejecutables del editor, algo que ya conocía pero que nunca le prestas atención. Concretamente están: emacs-gtk, emacs-x11 y emacsclient. Además, también hay un script en bash que selecciona qué ejecutable lanzar según los parámetros y otras circunstancias, que se llama emacs. Cuando llamo al script se produce el error, cuando llamo directamente al ejecutable que sea, está libre de errores y advertencias.

Solución: He creado mi propio script emacs. Para no interferir con el paquete de la distro lo he colocado en mi directorio ~/opt/bin/. En el directorio ~/opt/ tengo todas esas aplicaciones y herramientas que las instalo desde código fuente para mi usuario. Y para la ejecución de programas, tiene preferencia sobre los más generales del sistema. El script que me he hecho no puede ser más fácil y simple, no vayamos a cagarla de nuevo con la tontería:

/usr/bin/emacs-gtk $@

Ese simple script ha venido a solucionar un problema muy tonto, permitiéndome seguir trabajando como hasta ahora.

Conclusión

Hoy más que un artículo es una anotación y no explico grandes herramientas sino pequeños problemas con sus pequeñas soluciones. Lo hago más para acordarme en sucesivas actualizaciones que estoy corriendo una versión simplificada de un script que seguramente arreglarán los mantenedores del paquete en breve. Y también, por si acaso a otros usuarios les ha ocurrido lo mismo, y como yo, no han encontrado nada, ninguna referencia, de cómo poder solucionarlo.

Categoría: emacs opensuse

Comentarios

Debido a algunos ataques mailintencionados a través de la herramienta de comentarios, he decidido no proporcionar dicha opción en el Blog. Si alguien quiere comentar algo, me puede encontrar en Mastodon y en Diaspora con el nick de Notxor.

También se ha abierto un grupo en Telegram, para usuarios de esa red.

Disculpen las molestias.