doomemacs / doomemacs

An Emacs framework for the stubborn martian hacker
MIT License
18.89k stars 3.03k forks source link

Icons & font issues with emacs 27.1 on openSUSE #3768

Closed maikol-solis closed 3 years ago

maikol-solis commented 3 years ago

What did you expect to happen? Start a emacs with smooth fonts and with all-the-icons rendered properly.

What actually happened? The fonts and the icons are completely broken.

There are two weird messages when I started with emacs --debug-init

Also (find-font (font-spec :family "all-the-icons")) returns nil, but

fc-list  | grep all-the
/home/maikol/.local/share/fonts/all-the-icons.ttf: all\-the\-icons:style=Regular

Additional details:

Screenshots doom d2

*Message* buffer with emacs --debug-init

Loading loadup.el (source)...
dump mode: nil
Using load-path (/usr/share/emacs/27.1/site-lisp /usr/share/emacs/site-lisp /usr/share/emacs/27.1/lisp /usr/share/emacs/27.1/lisp/emacs-lisp /usr/share/emacs/27.1/lisp/progmodes /usr/share/emacs/27.1/lisp/language /usr/share/emacs/27.1/lisp/international /usr/share/emacs/27.1/lisp/textmodes /usr/share/emacs/27.1/lisp/vc)
Loading emacs-lisp/byte-run...done
Loading emacs-lisp/backquote...done
Loading subr...done
Loading version...done
Loading widget...done
Loading custom...done
Loading emacs-lisp/map-ynp...done
Loading international/mule...done
Loading international/mule-conf...done
Loading env...done
Loading format...done
Loading bindings (source)...done
Loading window...done
Loading files...done
Loading emacs-lisp/macroexp...done
Loading cus-face...done
Loading faces...done
Loading button...done
Loading /usr/share/emacs/27.1/lisp/loaddefs.el (source)...done
Loading emacs-lisp/nadvice...done
Loading emacs-lisp/cl-preloaded...done
Loading obarray...done
Loading abbrev...done
Loading simple...done
Loading help...done
Loading jka-cmpr-hook...done
Loading epa-hook...done
Loading international/mule-cmds...done
Loading case-table...done
Loading /usr/share/emacs/27.1/lisp/international/charprop.el (source)...done
Loading international/characters...done
Loading composite...done
Loading language/chinese...done
Loading language/cyrillic...done
Loading language/indian...done
Loading language/sinhala...done
Loading language/english...done
Loading language/ethiopic...done
Loading language/european...done
Loading language/czech...done
Loading language/slovak...done
Loading language/romanian...done
Loading language/greek...done
Loading language/hebrew...done
Loading international/cp51932...done
Loading international/eucjp-ms...done
Loading language/japanese...done
Loading language/korean...done
Loading language/lao...done
Loading language/tai-viet...done
Loading language/thai...done
Loading language/tibetan...done
Loading language/vietnamese...done
Loading language/misc-lang...done
Loading language/utf-8-lang...done
Loading language/georgian...done
Loading language/khmer...done
Loading language/burmese...done
Loading language/cham...done
Loading indent...done
Loading emacs-lisp/cl-generic...done
Loading minibuffer...
Error during redisplay: (clear-minibuffer-message) signaled (void-function timerp)
Loading minibuffer...done
Error during redisplay: (clear-minibuffer-message) signaled (void-function timerp)
Loading frame...
Error during redisplay: (clear-minibuffer-message) signaled (void-function timerp)
Loading frame...done
Error during redisplay: (clear-minibuffer-message) signaled (void-function timerp)
Loading startup...
Error during redisplay: (clear-minibuffer-message) signaled (void-function timerp)
Loading startup...done
Error during redisplay: (clear-minibuffer-message) signaled (void-function timerp)
Loading term/tty-colors...
Error during redisplay: (clear-minibuffer-message) signaled (void-function timerp)
Loading term/tty-colors...done
Error during redisplay: (clear-minibuffer-message) signaled (void-function timerp)
Loading font-core...
Error during redisplay: (clear-minibuffer-message) signaled (void-function timerp)
Loading font-core...done
Error during redisplay: (clear-minibuffer-message) signaled (void-function timerp)
Loading facemenu...
Error during redisplay: (clear-minibuffer-message) signaled (void-function timerp)
Loading facemenu...done
Error during redisplay: (clear-minibuffer-message) signaled (void-function timerp)
Loading emacs-lisp/syntax...
Error during redisplay: (clear-minibuffer-message) signaled (void-function timerp)
Loading emacs-lisp/syntax...done
Error during redisplay: (clear-minibuffer-message) signaled (void-function timerp)
Loading font-lock...
Error during redisplay: (clear-minibuffer-message) signaled (void-function timerp)
Loading font-lock...done
Error during redisplay: (clear-minibuffer-message) signaled (void-function timerp)
Loading jit-lock...
Error during redisplay: (clear-minibuffer-message) signaled (void-function timerp)
Loading jit-lock...done
Error during redisplay: (clear-minibuffer-message) signaled (void-function timerp)
Loading mouse...
Error during redisplay: (clear-minibuffer-message) signaled (void-function timerp)
Loading mouse...done
Error during redisplay: (clear-minibuffer-message) signaled (void-function timerp)
Loading scroll-bar...
Error during redisplay: (clear-minibuffer-message) signaled (void-function timerp)
Loading scroll-bar...done
Error during redisplay: (clear-minibuffer-message) signaled (void-function timerp)
Loading select...
Error during redisplay: (clear-minibuffer-message) signaled (void-function timerp)
Loading select...done
Error during redisplay: (clear-minibuffer-message) signaled (void-function timerp)
Loading emacs-lisp/timer...done
Loading isearch...done
Loading rfn-eshadow...done
Loading menu-bar...done
Loading tab-bar...done
Loading emacs-lisp/lisp...done
Loading textmodes/page...done
Loading register...done
Loading textmodes/paragraphs...done
Loading progmodes/prog-mode...done
Loading emacs-lisp/lisp-mode...done
Loading progmodes/elisp-mode...done
Loading textmodes/text-mode...done
Loading textmodes/fill...done
Loading newcomment...done
Loading replace...done
Loading emacs-lisp/tabulated-list...done
Loading buff-menu...done
Loading fringe...done
Loading emacs-lisp/regexp-opt...done
Loading image...done
Loading international/fontset...done
Loading dnd...done
Loading tool-bar...done
Loading dynamic-setting...done
Loading x-dnd...done
Loading term/common-win...done
Loading term/x-win...done
Loading mwheel...done
Loading emacs-lisp/float-sup...done
Loading vc/vc-hooks...done
Loading vc/ediff-hook...done
Loading uniquify...done
Loading electric...done
Loading emacs-lisp/eldoc...done
Loading /usr/share/emacs/27.1/lisp/cus-start.el (source)...done
Loading tooltip...done
Loading /usr/share/emacs/27.1/lisp/leim/leim-list.el (source)...done
Loading /usr/share/emacs/27.1/lisp/site-load.el (source)...
Loading lpr...done
Loading delsel...done
Loading /usr/share/emacs/27.1/lisp/site-load.el (source)...done
Finding pointers to doc strings...done
DOOM Initializing Doom
Debug mode on
DOOM Initializing core modules
DOOM Initializing user config
DOOM Running doom hook: evil-mode
DOOM Running doom hook: +evil--init-popup-rules-h
DOOM Loading deferred package server from doom--after-call-server-h
DOOM [editor/evil] Initialized evil-collection-calendar (too early!)
DOOM [editor/evil] Initialized evil-collection-comint (too early!)
DOOM [editor/evil] Initialized evil-collection-custom (too early!)
DOOM [editor/evil] Initialized evil-collection-help (too early!)
DOOM [editor/evil] Initialized evil-collection-calendar (too early!)
DOOM [editor/evil] Initialized evil-collection-outline (too early!)
DOOM [editor/evil] Initialized evil-collection-epa (too early!)
DOOM [editor/evil] Initialized evil-collection-dired (too early!)
DOOM [editor/evil] Initialized evil-collection-log-edit (too early!)
DOOM [editor/evil] Initialized evil-collection-diff-mode (too early!)
DOOM [editor/evil] Initialized evil-collection-magit (too early!)
DOOM [editor/evil] Initialized evil-collection-compile (too early!)
DOOM [editor/evil] Initialized evil-collection-grep (too early!)
DOOM [editor/evil] Initialized evil-collection-magit-todos (too early!)
DOOM [editor/evil] Initialized evil-collection-elisp-mode (too early!)
[yas] Prepared just-in-time loading of snippets successfully.
Starting new Ispell process aspell with english-utf8 dictionary...done
DOOM [editor/evil] Initialized evil-collection-vc-git (too early!)
DOOM [editor/evil] Initialized evil-collection-reftex (too early!)
DOOM [editor/evil] Initialized evil-collection-info (too early!)
DOOM [editor/evil] Initialized evil-collection-xref (too early!)
DOOM [editor/evil] Initialized evil-collection-ivy (too early!)
DOOM [editor/evil] Initialized evil-collection-flymake (too early!)
Loading /home/maikol/.doom.d/custom.el (source)...done
Loading /home/maikol/.config/emacs/company-statistics-cache.el (source)...done
DOOM Running doom hook: +doom-dashboard-init-h
DOOM [ui/doom-dashboard] Reloading dashboard at 06:11:10
DOOM [ui/doom-dashboard] Changed dashboard’s PWD to ~/
DOOM Running doom hook: doom-init-theme-h
DOOM Running doom hook: window-divider-mode
DOOM Running doom hook: +popup-mode
Doom loaded 265 packages across 48 modules in 4.009s
Loading loadup.el (source)...done
Package cl is deprecated
DOOM Running doom hook: gcmh-mode
DOOM Running doom hook: evil-goggles-mode
DOOM Running doom hook: ivy-mode
DOOM Running doom hook: helm-mode
DOOM Running doom hook: global-company-mode
DOOM Running doom hook: better-jumper-mode
DOOM Running doom hook: savehist-mode
DOOM Running doom hook: which-key-mode
DOOM [editor/evil] Initialized evil-collection-which-key 
DOOM [editor/evil] Loading deferred package evil-snipe from doom--after-call-evil-snipe-h
DOOM [editor/evil] Loading deferred package evil-escape from doom--after-call-evil-escape-h
DOOM [editor/evil] Loading deferred package evil-easymotion from doom--after-call-evil-easymotion-h
DOOM Incrementally loading tree-widget
DOOM Incrementally loading recentf
DOOM Running doom hook: global-flycheck-mode
DOOM [editor/evil] Initialized evil-collection-flycheck 
DOOM [editor/evil] Initialized evil-collection-popup 
DOOM Running doom hook: undo-fu-mode
DOOM Running doom hook: ws-butler-global-mode
DOOM Running doom hook: smartparens-global-mode
DOOM Running doom hook: show-paren-mode
DOOM Running doom hook: winner-mode
Garbage collecting...done (0.086s)
Beginning of buffer [8 times]
Garbage collecting...done (0.081s)
Garbage collecting...done (0.091s)

doom doctor

Warning: game dir '/var/games/emacs': Permission denied
Loading loadup.el (source)...
dump mode: nil
Using load-path (/usr/share/emacs/27.1/site-lisp /usr/share/emacs/site-lisp /usr/share/emacs/27.1/lisp /usr/share/emacs/27.1/lisp/emacs-lisp /usr/share/emacs/27.1/lisp/progmodes /usr/share/emacs/27.1/lisp/language /usr/share/emacs/27.1/lisp/international /usr/share/emacs/27.1/lisp/textmodes /usr/share/emacs/27.1/lisp/vc)
Loading emacs-lisp/byte-run...
Loading emacs-lisp/backquote...
Loading subr...
Loading version...
Loading widget...
Loading custom...
Loading emacs-lisp/map-ynp...
Loading international/mule...
Loading international/mule-conf...
Loading env...
Loading format...
Loading bindings (source)...
Loading window...
Loading files...
Loading emacs-lisp/macroexp...
Loading cus-face...
Loading faces...
Loading button...
Loading /usr/share/emacs/27.1/lisp/loaddefs.el (source)...
Loading emacs-lisp/nadvice...
Loading emacs-lisp/cl-preloaded...
Loading obarray...
Loading abbrev...
Loading simple...
Loading help...
Loading jka-cmpr-hook...
Loading epa-hook...
Loading international/mule-cmds...
Loading case-table...
Loading /usr/share/emacs/27.1/lisp/international/charprop.el (source)...
Loading international/characters...
Loading composite...
Loading language/chinese...
Loading language/cyrillic...
Loading language/indian...
Loading language/sinhala...
Loading language/english...
Loading language/ethiopic...
Loading language/european...
Loading language/czech...
Loading language/slovak...
Loading language/romanian...
Loading language/greek...
Loading language/hebrew...
Loading international/cp51932...
Loading international/eucjp-ms...
Loading language/japanese...
Loading language/korean...
Loading language/lao...
Loading language/tai-viet...
Loading language/thai...
Loading language/tibetan...
Loading language/vietnamese...
Loading language/misc-lang...
Loading language/utf-8-lang...
Loading language/georgian...
Loading language/khmer...
Loading language/burmese...
Loading language/cham...
Loading indent...
Loading emacs-lisp/cl-generic...
Loading minibuffer...
Loading frame...
Loading startup...
Loading term/tty-colors...
Loading font-core...
Loading facemenu...
Loading emacs-lisp/syntax...
Loading font-lock...
Loading jit-lock...
Loading mouse...
Loading scroll-bar...
Loading select...
Loading emacs-lisp/timer...
Loading isearch...
Loading rfn-eshadow...
Loading menu-bar...
Loading tab-bar...
Loading emacs-lisp/lisp...
Loading textmodes/page...
Loading register...
Loading textmodes/paragraphs...
Loading progmodes/prog-mode...
Loading emacs-lisp/lisp-mode...
Loading progmodes/elisp-mode...
Loading textmodes/text-mode...
Loading textmodes/fill...
Loading newcomment...
Loading replace...
Loading emacs-lisp/tabulated-list...
Loading buff-menu...
Loading fringe...
Loading emacs-lisp/regexp-opt...
Loading image...
Loading international/fontset...
Loading dnd...
Loading tool-bar...
Loading dynamic-setting...
Loading x-dnd...
Loading term/common-win...
Loading term/x-win...
Loading mwheel...
Loading emacs-lisp/float-sup...
Loading vc/vc-hooks...
Loading vc/ediff-hook...
Loading uniquify...
Loading electric...
Loading emacs-lisp/eldoc...
Loading /usr/share/emacs/27.1/lisp/cus-start.el (source)...
Loading tooltip...
Loading /usr/share/emacs/27.1/lisp/leim/leim-list.el (source)...
Loading /usr/share/emacs/27.1/lisp/site-load.el (source)...
Loading lpr...
Loading delsel...
Finding pointers to doc strings...
Finding pointers to doc strings...done
The doctor will see you now...

> Checking your Emacs version...
> Checking for Emacs config conflicts...
> Checking for great Emacs features...
> Checking for private config conflicts...
> Checking for stale elc files...
> Checking Doom Emacs...

Starting new Ispell process aspell with english-utf8 dictionary... \ 
Starting new Ispell process aspell with english-utf8 dictionary...done
! Attempt to load DOOM failed
  (config.el (wrong-type-argument window-live-p nil))

There are 1 warnings!
✓ Finished! (11.1785s)

Steps to reproduce:

  1. Update emacs 27.1 in openSUSE 15.2,
  2. Delete old .emacs.d,
  3. Install from zero emacs-doom.

System information:

``` emacs version 27.1 features XPM JPEG TIFF GIF PNG RSVG CAIRO SOUND DBUS GSETTINGS GLIB NOTIFY INOTIFY ACL LIBSELINUX GNUTLS LIBXML2 FREETYPE HARFBUZZ M17N_FLT LIBOTF ZLIB TOOLKIT_SCROLL_BARS GTK3 X11 XDBE XIM MODULES THREADS XWIDGETS LIBSYSTEMD JSON PDUMPER LCMS2 GMP build Aug 17, 2020 buildopts (--disable-build-details --with-pop --without-hesiod --with-gameuser=:games --with-kerberos --with-kerberos5 --with-file-notification=inotify --with-modules --enable-autodepend --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --localstatedir=/var --sharedstatedir=/var/lib --libexecdir=/usr/lib --enable-locallisppath=/usr/share/emacs/27.1/site-lisp:/usr/share/emacs/site-lisp --with-x --with-xim --with-sound --with-xpm --with-jpeg --with-tiff --with-gif --with-png --with-rsvg --with-dbus --with-xft --without-gpm --with-x-toolkit=gtk3 --with-toolkit-scroll-bars --x-includes=/usr/include --x-libraries=/usr/lib64 --with-libotf --with-m17n-flt --with-cairo --with-xwidgets --build=x86_64-suse-linux --with-dumping=pdumper 'CFLAGS=-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -g -D_GNU_SOURCE -DGDK_DISABLE_DEPRECATION_WARNINGS -DGLIB_DISABLE_DEPRECATION_WARNINGS -pipe -Wno-pointer-sign -Wno-unused-variable -Wno-unused-label -fno-optimize-sibling-calls -fno-PIE -DSYSTEM_PURESIZE_EXTRA=55000 -DSITELOAD_PURESIZE_EXTRA=10000 ' LDFLAGS=-Wl,-O2) windowsys x daemonp server-running doom version 2.0.9 build HEAD -> develop 8fa5b940 2020-08-16 21:14:50 -0400 dir ~/.doom.d/ system type gnu/linux config x86_64-suse-linux-gnu shell /bin/bash uname Linux 5.3.18-lp152.33-default #1 SMP Wed Jul 22 06:32:33 UTC 2020 (e5a8383) x86_64 path (~/.emacs.d/bin/ ~/bin /usr/local/bin /usr/bin /bin /snap/bin /usr/lib/emacs/27.1/x86_64-suse-linux/) config envfile envvar-file elc-files 0 modules (:completion (company +childframe) helm ivy :ui deft doom doom-dashboard fill-column hl-todo modeline nav-flash ophints (popup +defaults) pretty-code tabs treemacs vc-gutter vi-tilde-fringe window-select zen :editor (evil +everywhere) file-templates fold (format +onsave) multiple-cursors snippets word-wrap :emacs dired electric undo vc :checkers syntax spell grammar :tools (eval +overlay) (lookup +dictionary +offline) (lsp +peek +eglot) magit pdf :os tty :lang emacs-lisp (ess +lsp) (latex +latexmk +cdlatex +fold +lsp) markdown (org +pomodoro +roam +dragndrop +noter +pandoc) python sh :app calendar :config (default +bindings +smartparens)) packages ((evil-tutor) (org-fragtog) (real-auto-save) (org-roam-bibtex) (helm-bibtex) (org-ref) (org-roam-server) (org-roam-dashboard :recipe (:host github :repo publicimageltd/org-roam-dashboard)) (polymode) (poly-R) (ess-view) (minions) (beacon) (orgonomic :recipe (:host github :repo aaronjensen/emacs-orgonomic)) (org-clock-convenience) (secretaria) (company-statistics) (company-math) (move-dup) (discover-my-major) (academic-phrases) (org-tracktable)) unpin (org-roam company-org-roam org-roam-bibtex) elpa (n/a) ```
hlissner commented 3 years ago

Various Emacs 27.1 builds on openSUSE seem to behave strangely. A few bugs I can reproduce nowhere else have been reported on our Discord. I'm not aware of any straightforward fix (and am not familiar with openSUSE), unfortunately, but i'm told there are multiple sources for 27.1 on openSUSE, so I'd suggest installing 27.1 from another source. If that doesn't work, then I'll have to hope that other openSUSE users can pitch in.

maikol-solis commented 3 years ago

I found this reference (https://build.opensuse.org/package/show/editors/emacs#comment-1287071) mentioning the need of --no-x-resources. I tested it and now doom-emacs seem good.

The message Package cl is deprecated is still present, though.

narnat commented 3 years ago

I confirm the same issue is happening with me, openSUSE Tumbleweed. I am running it with --no-x-resources as @maikol-solis mentioned

maikol-solis commented 3 years ago

It's fixed https://bugzilla.opensuse.org/show_bug.cgi?id=1175372.

I tested the latest version (https://build.opensuse.org/package/show/editors/emacs [revision 285]) and for the moment the fonts and icons seems OK.

I will close the issue.

agraul commented 3 years ago

[...] i'm told there are multiple sources for 27.1 on openSUSE, so I'd suggest installing 27.1 from another source.

I want to clarify this a bit, in case it helps in the future. openSUSE is a project with two distributions Leap and Tumbleweed. In each of them there is one official Emacs package. Leap gets one "Service Pack" a year which could upgrade Emacs, in reality this was not the case recently (Leap still ships Emacs 25) while Tumbleweed is a rolling release and gets new Emacs versions relatively quickly.

What happens now is that Leap users also want Emacs 27 (or 26 previously) and add an additional repository. This additional repository is most likely from OBS. OBS is a build service that is used to build the distributions but also allows anyone to build their own packages, for many different Linux distributions.

There are different projects (basically namespace in OBS) that build Emacs 27, one of which is the "devel" project for Tumbleweed. This is often used, as it has to be maintained to keep Tumbleweed up to date. It's the one that was used by the first report on Discord, on a Leap system. I guess you could call this semi-official, but the only tested version of Emacs in Leap is still 25. On Tumbleweed this is basically a pre-QA version that is changing more quickly than the version in the official repo, but generally pretty close (few days delta). For that reason many TW users only noticed the issue after the official package was updated while Leap users noticed it earlier.

Then there are "home"-projects, these have various levels of quality and are not recommended for consumption. While using one might work fine, here you are on your own pretty much. In the context of Emacs, there is one that I've used that is pretty reliable, but it is still a version of Emacs maintained by someone (in this case an Emacs upstream contributor) in their personal Emacs project.

I hope this clarifies the openSUSE situation a bit, in the end only "one" Emacs build was broken (on different distros, which are technically multiple builds from the same source with the same recipe).

@hlissner btw, you can always ping me in openSUSE related issues