Hi!

csanchez...@gmail.com (Carlos Sánchez de La Lama) skribis:

> I think I can shed some light on the problem. *If* during mutt configure
> step, "/var/mail" is found to be group-writable, then mutt makefiles
> decide mutt has to be setgid, to group "mail" unless overriden by
> configure parameters. If "/var/mail" is not group-writable, then mutt is
> built without setgid.
>
> This is performed by a test program in configure.ac which is:
>
> #include <sys/stat.h>
> #include <stdlib.h>
>
> int main (int argc, char **argv)
> {
>         struct stat s;
>
>         stat ("$mutt_cv_mailpath", &s);
>         if (s.st_mode & S_IWGRP) exit (0);
>         exit (1);
> }
>
> where $mutt_cv_mailpath is "/var/mail" (passed as configure parameter).
>
> The problem happens when "/var/mail" does not exist. "stat" return value
> is not checked, so whatever garbage happens to be in s.st_mode can
> randomly lead to detecting it as group-writable or not.

Terrible.

> If I create "/var/mail" on my system, I can build & install mutt in
> "guix environment mutt". However, building in the chroot (with "guix
> build") still fails. I am reaching the limits of my guix knowledge
> here... how/where are chroot contents defined?

The chroot content is described in the bullet list at:

  
https://www.gnu.org/software/guix/manual/html_node/Build-Environment-Setup.html

The code that populates it is in nix/libstore/build.cc:1825.

There’s no /var in the chroot.

> I was going to report the bug to mutt (strictly speaking, it's theirs),
> but seems it was already reported *and fixed* as bug #3810:
>
> https://dev.mutt.org/trac/ticket/3810
>
> So reconfiguring with an updated tree would fix my problem (it's
> building now).

Great.

Thanks,
Ludo’.

Reply via email to