Print system and compile info to a file.
417{
418 if (!fp)
419 return false;
420
421 struct utsname uts;
422 bool tty = isatty(fileno(fp));
423 const char *fmt = "%s\n";
424
425 if (tty)
426 fmt = "\033[1;36m%s\033[0m\n";
427
429 fprintf(fp,
"%s\n",
_(
Notice));
430
431 uname(&uts);
432
433#ifdef SCO
434 fprintf(fp, "System: SCO %s", uts.release);
435#else
436 fprintf(fp, "System: %s %s", uts.sysname, uts.release);
437#endif
438
439 fprintf(fp, " (%s)", uts.machine);
440
441#ifdef NCURSES_VERSION
442 fprintf(fp, "\nncurses: %s (compiled with %s.%d)", curses_version(),
443 NCURSES_VERSION, NCURSES_VERSION_PATCH);
444#else
445 fprintf(fp, "\nncurses: %s", curses_version());
446#endif
447
448#ifdef _LIBICONV_VERSION
449 fprintf(fp, "\nlibiconv: %d.%d", _LIBICONV_VERSION >> 8, _LIBICONV_VERSION & 0xff);
450#endif
451
452#ifdef HAVE_LIBIDN
454#endif
455
456#ifdef CRYPT_BACKEND_GPGME
458#endif
459
460#ifdef USE_SSL_OPENSSL
461#ifdef LIBRESSL_VERSION_TEXT
462 fprintf(fp, "\nLibreSSL: %s", LIBRESSL_VERSION_TEXT);
463#endif
464#ifdef OPENSSL_VERSION_TEXT
465 fprintf(fp, "\nOpenSSL: %s", OPENSSL_VERSION_TEXT);
466#endif
467#endif
468
469#ifdef USE_SSL_GNUTLS
470 fprintf(fp, "\nGnuTLS: %s", GNUTLS_VERSION);
471#endif
472
473#ifdef HAVE_NOTMUCH
474 fprintf(fp, "\nlibnotmuch: %d.%d.%d", LIBNOTMUCH_MAJOR_VERSION,
475 LIBNOTMUCH_MINOR_VERSION, LIBNOTMUCH_MICRO_VERSION);
476#endif
477
478#ifdef HAVE_PCRE2
479 {
480 char version[24] = { 0 };
481 pcre2_config(PCRE2_CONFIG_VERSION, version);
482 fprintf(fp, "\nPCRE2: %s", version);
483 }
484#endif
485
486#ifdef USE_HCACHE
488 fprintf(fp, "\nstorage: %s", backends);
490#ifdef USE_HCACHE_COMPRESSION
492 fprintf(fp, "\ncompression: %s", backends);
494#endif
495#endif
496
499
501 fprintf(fp,
"\nCompilation CFLAGS: %s\n", (
char *)
cc_cflags);
502
503 fprintf(fp,
"\n%s\n",
_(
"Default options:"));
505
506 fprintf(fp,
"\n%s\n",
_(
"Compile options:"));
508
510 {
511 fprintf(fp,
"\n%s\n",
_(
"Devel options:"));
513 }
514
515 fprintf(fp, "\n");
516#ifdef DOMAIN
517 fprintf(fp, "DOMAIN=\"%s\"\n", DOMAIN);
518#endif
519#ifdef ISPELL
520 fprintf(fp,
"ISPELL=\"%s\"\n",
ISPELL);
521#endif
522 fprintf(fp, "MAILPATH=\"%s\"\n", MAILPATH);
523#ifdef MIXMASTER
524 fprintf(fp, "MIXMASTER=\"%s\"\n", MIXMASTER);
525#endif
526 fprintf(fp, "PKGDATADIR=\"%s\"\n", PKGDATADIR);
527 fprintf(fp, "SENDMAIL=\"%s\"\n", SENDMAIL);
528 fprintf(fp, "SYSCONFDIR=\"%s\"\n", SYSCONFDIR);
529
530 fprintf(fp, "\n");
532
533 fflush(fp);
534 return !ferror(fp);
535}
const char * compress_list(void)
Get a list of compression backend names.
const char * mutt_gpgme_print_version(void)
Get version of GPGME.
const char * mutt_idna_print_version(void)
Create an IDN version string.
static void print_compile_options(struct CompileOptions *co, FILE *fp)
Print a list of enabled/disabled features.
static const char * ReachingUs
const char * mutt_make_version(void)
Generate the NeoMutt version string.
static struct CompileOptions comp_opts_default[]
static struct CompileOptions debug_opts[]
unsigned char configure_options[]
unsigned char cc_cflags[]
static char * rstrip_in_place(char *s)
Strip a trailing carriage return.
static const char * Notice
const char * store_backend_list(void)
Get a list of backend names.
static struct CompileOptions comp_opts[]