Subject: bug#11813: bug#11850: crash (null font) running emacs built from git

From: Left Right <[email-masked]>
Date: Wed, 11 Jul 2012 20:36:40 +0300

>There are quite a lot of details missing from the bug report.  In the
>first place, what font is Emacs using?  Type

>  M-x describe-face RET default RET

This prints the following:

Face: default (sample) (customize this face)

Documentation:
Basic default face.

Defined in `faces.el'.

        Family: nimbus mono l
       Foundry: urw
         Width: normal
        Height: 129
        Weight: normal
         Slant: normal
    Foreground: #e0dedb
    Background: #201f1f
     Underline: nil
      Overline: nil
Strike-through: nil
           Box: nil
       Inverse: nil
       Stipple: nil
          Font: #<font-object -urw-nimbus mono
l-regular-r-normal--17-123-100-100-p-100-iso8859-1>
       Fontset: -urw-nimbus mono
l-regular-r-normal--17-*-100-100-p-100-fontset-startup
       Inherit: nil

In Emacs 23 (which works well) this looks like:

Face: default (sample) (customize this face)

Documentation:
Basic default face.

        Family: fixed
       Foundry: misc
         Width: normal
        Height: 99
        Weight: normal
         Slant: normal
    Foreground: Grey
    Background: Grey15
     Underline: nil
      Overline: nil
Strike-through: nil
           Box: nil
       Inverse: nil
       Stipple: nil
          Font: #<font-object
-misc-fixed-medium-r-normal--13-120-75-75-c-80-iso8859-1>
       Fontset: -misc-fixed-medium-r-normal--13-*-75-75-c-80-fontset-auto1
       Inherit: nil

Nimbus is indeed a font installed on my system (screenshot attached).
But it has bold face (you can see it on the screenshot). Though the
font which I was referring to as "not installed myself" is the other
one called "variable-pitch" it is used in the "welcome" buffer. And
below is what describe-face tells me about it:

Face: variable-pitch (sample) (customize this face)

Documentation:
The basic variable-pitch face.

Defined in `faces.el'.

        Family: Sans Serif
       Foundry: unspecified
         Width: unspecified
        Height: unspecified
        Weight: unspecified
         Slant: unspecified
    Foreground: unspecified
    Background: unspecified
     Underline: unspecified
      Overline: unspecified
Strike-through: unspecified
           Box: unspecified
       Inverse: unspecified
       Stipple: unspecified
          Font: unspecified
       Fontset: unspecified
       Inherit: unspecified

In Emacs 23 this looks like:

Face: variable-pitch (sample) (customize this face)

Documentation:
The basic variable-pitch face.

        Family: helv
       Foundry: unspecified
         Width: unspecified
        Height: unspecified
        Weight: unspecified
         Slant: unspecified
    Foreground: unspecified
    Background: unspecified
     Underline: unspecified
      Overline: unspecified
Strike-through: unspecified
           Box: unspecified
       Inverse: unspecified
       Stipple: unspecified
          Font: unspecified
       Fontset: unspecified
       Inherit: unspecified

> Also, are you specifying the font in your Emacs init file (via face
> customization), or in .Xresources?

I started Emacs with -q, suppose that loads it w/o my .emacs settings.
I don't even have a ~/.Xresources, so, I guess, that's not an option
either, or can it somehow look for another Xresources? If yes, then
where?

> And is Emacs compiled with GSettings
> and -lfreetype support (these should be reported in the messages near
> the output of ./configure)?

I've added no special configuration options, below is the output of ./configure:

checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for style of include used by make... GNU
checking dependency style of gcc... gcc3
checking whether gcc and cc understand -c and -o together... yes
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for Minix Amsterdam compiler... no
checking for ar... ar
checking for ranlib... ranlib
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking minix/config.h usability... no
checking minix/config.h presence... no
checking for minix/config.h... no
checking whether it is safe to define __EXTENSIONS__... yes
checking for special C compiler options needed for large files... no
checking for _FILE_OFFSET_BITS value needed for large files... no
checking for gcc option to accept ISO C99... -std=gnu99
checking for gcc -std=gnu99 option to accept ISO Standard C...
(cached) -std=gnu99
checking for install-info... /usr/bin/install-info
checking for gzip... /bin/gzip
checking for paxctl... no
checking for makeinfo... /usr/bin/makeinfo
checking for -znocombreloc... yes
checking for working alloca.h... yes
checking for alloca... yes
checking for readlinkat... yes
checking for gettimeofday... yes
checking for nanotime... no
checking for lstat... yes
checking for alarm... yes
checking for pselect... yes
checking for pthread_sigmask... no
checking for readlink... yes
checking for tzset... yes
checking for strtoimax... yes
checking for strtoumax... yes
checking for symlink... yes
checking for localtime_r... yes
checking for futimes... yes
checking for futimesat... yes
checking for futimens... yes
checking for utimensat... yes
checking for lutimes... yes
checking whether byte ordering is bigendian... no
checking for inline... inline
checking whether strtold conforms to C99... yes
checking for st_dm_mode in struct stat... no
checking whether strmode is declared... no
checking whether the preprocessor supports include_next... yes
checking whether system header files limit the line length... no
checking for getopt.h... yes
checking for sys/time.h... yes
checking for sys/socket.h... yes
checking for wchar.h... yes
checking for stdint.h... (cached) yes
checking for inttypes.h... (cached) yes
checking for unistd.h... (cached) yes
checking for sys/select.h... yes
checking for sys/stat.h... (cached) yes
checking for utime.h... yes
checking for sys/param.h... yes
checking for linux/version.h... yes
checking for sys/systeminfo.h... no
checking for stdio_ext.h... yes
checking for fcntl.h... yes
checking for coff.h... no
checking for pty.h... yes
checking for sys/vlimit.h... yes
checking for sys/resource.h... yes
checking for sys/utsname.h... yes
checking for pwd.h... yes
checking for utmp.h... yes
checking for dirent.h... yes
checking for util.h... no
checking for stdlib.h... (cached) yes
checking for pthread.h... yes
checking for malloc/malloc.h... no
checking for maillock.h... no
checking for sys/un.h... yes
checking for getopt.h... (cached) yes
checking for getopt_long_only... yes
checking whether getopt is POSIX compatible... yes
checking for working GNU getopt function... no
checking whether getenv is declared... yes
checking for C/C++ restrict keyword... __restrict
checking for struct timeval... yes
checking for correct struct timeval.tv_sec member... yes
checking for unsigned long long int... yes
checking for long long int... yes
checking whether stdint.h conforms to C99... yes
checking whether lstat correctly handles trailing slash... yes
checking whether <sys/select.h> is self-contained... yes
checking for sigset_t... yes
checking for pid_t... yes
checking for stdbool.h that conforms to C99... yes
checking for _Bool... yes
checking for wchar_t... yes
checking whether struct tm is in sys/time.h or time.h... time.h
checking for struct tm.tm_zone... yes
checking for struct tm.tm_gmtoff... yes
checking whether strtoimax is declared... yes
checking whether strtoumax is declared... yes
checking whether stat file-mode macros are broken... no
checking for mode_t... yes
checking for struct timespec in <time.h>... yes
checking whether the utimes function works... yes
checking for struct utimbuf... yes
checking for alloca as a compiler built-in... yes
checking for library containing clock_gettime... -lrt
checking for clock_gettime... yes
checking for clock_settime... yes
checking whether dup2 works... yes
checking for getloadavg... yes
checking sys/loadavg.h usability... no
checking sys/loadavg.h presence... no
checking for sys/loadavg.h... no
checking whether getloadavg is declared... yes
checking whether gettimeofday clobbers localtime buffer... no
checking for gettimeofday with POSIX signature... almost
checking for working mktime... yes
checking whether signature of pselect conforms to POSIX... yes
checking whether readlink signature is correct... yes
checking whether readlink handles trailing slash correctly... yes
checking for volatile sig_atomic_t... yes
checking for sighandler_t... yes
checking for socklen_t... yes
checking for ssize_t... yes
checking for struct stat.st_atim.tv_nsec... yes
checking whether struct stat.st_atim is of type struct timespec... yes
checking for struct stat.st_birthtimespec.tv_nsec... no
checking for struct stat.st_birthtimensec... no
checking for struct stat.st_birthtim.tv_nsec... no
checking for working stdalign.h... no
checking for va_copy... yes
checking whether NULL can be used in arbitrary expressions... yes
checking whether strtoimax works... yes
checking whether symlink handles trailing slash correctly... yes
checking whether <sys/select.h> is self-contained... (cached) yes
checking for nlink_t... yes
checking whether localtime_r is declared... yes
checking whether localtime_r is compatible with its POSIX signature... yes
checking for pkg-config... /usr/bin/pkg-config
checking machine/soundcard.h usability... no
checking machine/soundcard.h presence... no
checking for machine/soundcard.h... no
checking sys/soundcard.h usability... yes
checking sys/soundcard.h presence... yes
checking for sys/soundcard.h... yes
checking soundcard.h usability... no
checking soundcard.h presence... no
checking for soundcard.h... no
checking for _oss_ioctl in -lossaudio... no
checking for alsa >= 1.0.0... no
checking if personality LINUX32 can be set... yes
checking for term.h... yes
checking whether time.h and sys/time.h may both be included... yes
checking whether sys_siglist is declared... no
checking whether __sys_siglist is declared... no
checking for sys/wait.h that is POSIX.1 compatible... yes
checking for speed_t... yes
checking for struct exception... yes
checking for net/if.h... yes
checking for ifaddrs.h... yes
checking for net/if_dl.h... no
checking for struct ifreq.ifr_flags... yes
checking for struct ifreq.ifr_hwaddr... yes
checking for struct ifreq.ifr_netmask... yes
checking for struct ifreq.ifr_broadaddr... yes
checking for struct ifreq.ifr_addr... yes
checking for struct ifreq.ifr_addr.sa_len... no
checking for  __attribute__ ((__aligned__ (expr)))... yes
checking whether we are using GNU Make... yes
checking whether gcc understands -MMD -MF... yes
checking for long file names... yes
checking for X... libraries , headers
checking whether malloc is Doug Lea style... yes
checking for getpagesize... yes
checking for working mmap... yes
checking for dnet_ntoa in -ldnet... no
checking for main in -lXbsd... no
checking for pthread_self in -lpthread... yes
checking for cma_open in -lpthreads... no
checking whether X on GNU/Linux needs -b to link... no
checking for Xkb... yes
checking for XrmSetDatabase... yes
checking for XScreenResourceString... yes
checking for XScreenNumberOfScreen... yes
checking X11 version 6... 6 or newer
checking for librsvg-2.0 >= 2.11.0... no
checking for Wand >= 6.2.8... no
checking for gtk+-2.0 >= 2.10 glib-2.0 >= 2.10... no
checking for dbus-1 >= 1.0... no
checking for gio-2.0 >= 2.26... no
checking for gconf-2.0 >= 2.13... no
checking for lgetfilecon in -lselinux... no
checking for gnutls >= 2.6.6... no
checking for gnutls_certificate_set_verify_function... no
checking for xaw3d... no
checking for libXaw... yes; using Lucid toolkit
checking X11 toolkit version... 6 or newer
checking for XmuConvertStandardSelection in -lXmu... yes
checking for XShapeQueryExtension in -lXext... yes
checking for fontconfig >= 2.2.0... yes CFLAGS=' ' LIBS='-lfontconfig  '
checking for xft >= 0.13.0... no
checking for XRenderQueryExtension in -lXrender... no
checking X11/xpm.h usability... yes
checking X11/xpm.h presence... yes
checking for X11/xpm.h... yes
checking for XpmReadFileToPixmap in -lXpm... yes
checking for XpmReturnAllocPixels preprocessor define... yes
checking jerror.h usability... yes
checking jerror.h presence... yes
checking for jerror.h... yes
checking for jpeg_destroy_compress in -ljpeg... yes
checking png.h usability... yes
checking png.h presence... yes
checking for png.h... yes
checking libpng/png.h usability... yes
checking libpng/png.h presence... yes
checking for libpng/png.h... yes
checking for png_get_channels in -lpng... yes
checking tiffio.h usability... yes
checking tiffio.h presence... yes
checking for tiffio.h... yes
checking for TIFFGetVersion in -ltiff... yes
checking gif_lib.h usability... yes
checking gif_lib.h presence... yes
checking for gif_lib.h... yes
checking for EGifPutExtensionLast in -lgif... yes
checking gpm.h usability... no
checking gpm.h presence... no
checking for gpm.h... no
checking X11/SM/SMlib.h usability... yes
checking X11/SM/SMlib.h presence... yes
checking for X11/SM/SMlib.h... yes
checking for SmcOpenConnection in -lSM... yes
checking for libxml-2.0 > 2.6.17... no
checking whether netdb declares h_errno... yes
checking for sqrt in -lm... yes
checking for maillock in -lmail... no
checking for maillock in -llockfile... no
checking for liblockfile.so... no
checking for gethostname... yes
checking for rename... yes
checking for closedir... yes
checking for mkdir... yes
checking for rmdir... yes
checking for getrusage... yes
checking for get_current_dir_name... yes
checking for random... yes
checking for lrand48... yes
checking for logb... yes
checking for frexp... yes
checking for fmod... yes
checking for rint... yes
checking for cbrt... yes
checking for setsid... yes
checking for strerror... yes
checking for fpathconf... yes
checking for select... yes
checking for euidaccess... yes
checking for getpagesize... (cached) yes
checking for setlocale... yes
checking for utimes... yes
checking for getrlimit... yes
checking for setrlimit... yes
checking for setpgid... yes
checking for getcwd... yes
checking for getwd... yes
checking for shutdown... yes
checking for getaddrinfo... yes
checking for __fpending... yes
checking for strsignal... yes
checking for setitimer... yes
checking for sendto... yes
checking for recvfrom... yes
checking for getsockname... yes
checking for getpeername... yes
checking for getifaddrs... yes
checking for freeifaddrs... yes
checking for gai_strerror... yes
checking for mkstemp... yes
checking for getline... yes
checking for getdelim... yes
checking for fsync... yes
checking for sync... yes
checking for difftime... yes
checking for posix_memalign... yes
checking for getpwent... yes
checking for endpwent... yes
checking for getgrent... yes
checking for endgrent... yes
checking for touchlock... no
checking for strcasecmp... yes
checking for strncasecmp... yes
checking for cfmakeraw... yes
checking for cfsetspeed... yes
checking for copysign... yes
checking for __executable_start... yes
checking for __builtin_unwind_init... yes
checking for _LARGEFILE_SOURCE value needed for large files... no
checking whether getpgrp requires zero arguments... yes
checking for grantpt... yes
checking for getpt... yes
checking for library containing tputs... -lncurses
checking for tzset... (cached) yes
checking whether localtime caches TZ... no
checking for socket... yes
checking netinet/in.h usability... yes
checking netinet/in.h presence... yes
checking for netinet/in.h... yes
checking arpa/inet.h usability... yes
checking arpa/inet.h presence... yes
checking for arpa/inet.h... yes
checking whether system supports dynamic ptys... yes
checking vfork.h usability... no
checking vfork.h presence... no
checking for vfork.h... no
checking for fork... yes
checking for vfork... yes
checking for working fork... yes
checking for working vfork... (cached) yes
checking for snprintf... yes
checking for nl_langinfo and CODESET... yes
checking for mbstate_t... yes
checking for C restricted array declarations... yes

Configured for `x86_64-unknown-linux-gnu'.

  Where should the build process find the source code?
/home/wvxvw/projects/emacs-sources/emacs
  What operating system file should Emacs use?            s/gnu-linux.h
  What compiler should emacs be built with?               gcc -std=gnu99 -g -O2
  Should Emacs use the GNU version of malloc?             yes
      (Using Doug Lea's new malloc from the GNU C Library.)
  Should Emacs use a relocating allocator for buffers?    no
  Should Emacs use mmap(2) for buffer allocation?         no
  What window system should Emacs use?                    x11
  What toolkit should Emacs use?                          LUCID
  Where do we find X Windows header files?                Standard dirs
  Where do we find X Windows libraries?                   Standard dirs
  Does Emacs use -lXaw3d?                                 no
  Does Emacs use -lXpm?                                   yes
  Does Emacs use -ljpeg?                                  yes
  Does Emacs use -ltiff?                                  yes
  Does Emacs use a gif library?                           yes -lgif
  Does Emacs use -lpng?                                   yes
  Does Emacs use -lrsvg-2?                                no
  Does Emacs use imagemagick?                             no
  Does Emacs use -lgpm?                                   no
  Does Emacs use -ldbus?                                  no
  Does Emacs use -lgconf?                                 no
  Does Emacs use GSettings?                               no
  Does Emacs use -lselinux?                               no
  Does Emacs use -lgnutls?                                no
  Does Emacs use -lxml2?                                  no
  Does Emacs use -lfreetype?                              no
  Does Emacs use -lm17n-flt?                              no
  Does Emacs use -lotf?                                   no
  Does Emacs use -lxft?                                   no
  Does Emacs use toolkit scroll bars?                     yes

configure: creating ./config.status
config.status: creating Makefile
config.status: creating lib/Makefile
config.status: creating lib-src/Makefile
config.status: creating oldXMenu/Makefile
config.status: creating doc/emacs/Makefile
config.status: creating doc/misc/Makefile
config.status: creating doc/lispintro/Makefile
config.status: creating doc/lispref/Makefile
config.status: creating src/Makefile
config.status: creating lwlib/Makefile
config.status: creating lisp/Makefile
config.status: creating leim/Makefile
config.status: creating test/automated/Makefile
config.status: creating admin/unidata/Makefile
config.status: creating src/config.h
config.status: executing depfiles commands
config.status: executing mkdirs commands
config.status: executing epaths commands
creating src/epaths.h
[ -r "/home/wvxvw/projects/emacs-sources/emacs/src/config.in" ] || (
cd /home/wvxvw/projects/emacs-sources/emacs && autoheader )
config.status: executing gdbinit commands

To spare you the reading, both GSettings and -lfreetype are "no", but
the configuration script didn't ask me to install libfreetype although
it is installed:

$ whereis libfreetype
libfreetype: /usr/lib/libfreetype.a /usr/lib/libfreetype.so
/usr/lib/libfreetype.la /usr/lib64/libfreetype.a
/usr/lib64/libfreetype.so /usr/lib64/libfreetype.la

I'm not sure what GSettings is, but it sounds like some Gnome thing
(the system where I'm running into problem is KDE).

Best.

Oleg