[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: mutt builds to fail on a barebones sytem
From: |
Ludovic Courtès |
Subject: |
Re: mutt builds to fail on a barebones sytem |
Date: |
Fri, 15 Jul 2016 16:27:33 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux) |
Hi!
address@hidden (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’.