help / color / mirror / Atom feed
From: Ingo Schwarze <>
Subject: Re: [PATCH makewhatis] add NIXSTOREDIR configuration variable to support NixOS
Date: Tue, 30 Mar 2021 22:30:20 +0200	[thread overview]
Message-ID: <> (raw)
In-Reply-To: <>

Hi Lukas,

Earendil wrote on Tue, Mar 30, 2021 at 09:49:49PM +0200:

> On NixOS there is a similar situation as with Hombrew: The actual
> man pages are installed into custom prefixes for each package under
> /nix/store and then symlinked to in the global share/man directory
> (which is /run/current-system/sw/share/man for NixOS). This of course
> makes makewhatis skip every installed man page when indexing because
> /nix/store is considered outside of the man directory.

Uh oh.  I must admit i found this "cellar" concept so weird and unusual
that i didn't anticipate any other system doing anything similar, and
hence the overly specific naming of the feature.  Then again, if i
read the commit logs correctly, it did take six years until the second
system (among about two dozen being actively maintained) turned up that
uses such a method...

> To fix this issue I've followed the implementation of HOMEBREWDIR. The
> drawback of this being that more or less the same code is duplicated for
> this purpose. However there may be a (arguably very small) group of
> users who would possibly want to use both configuration variables at the
> same time as the nix package manager can also be installed on macOS, but
> it would probably also not do any harm merging the two variables into one.

Indeed.  Using two package managers on the same machine at the same
time is no doubt a recipe for disaster, and i expect getting the
manual pages indexed will be the least of your worries...

So i'm not really convinced having *two* such variables with identical
functionality makes anything better.

Would simply setting HOMEBREWDIR=/nix/store be OK with you?

We could of course rename the variable to something more generic,
*if* a generic name for this concepts exists or can be invented
in a reasonable way.

> This patch is necessary to provide a mandoc-based alternative to the
> current module in NixOS which uses GNU's man-db
> package. I have a working implementation of this (using a cvs version of
> mandoc with this patch applied) here:

Nice.   :-)


To speed up the reply - i caused enough delay already - i refrained from
studying your code so far.

> A side note: During testing I haven't been able to trigger the code path
> of the ifdef in filescan. I've added it anyways because HOMEBREWDIR also
> has been added there, but didn't seem to be a situation where basedir is
> set and filescan is called, but maybe I missed something.

To reach the filescan() function, you need to call makewhatis with
the -d, -u, or -t option.

Unless i misunderstand my own code (after it required little maintenance
effort for a number of years), using -d or -u will indeed frst call
set_basedir() and then filescan() shortly afterwards, see the
function mandocdb() in the file mandocdb.c.

 To unsubscribe send an email to

  reply	other threads:[~2021-03-30 20:30 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-03-30 19:49 sternenseemann
2021-03-30 20:30 ` Ingo Schwarze [this message]
2021-03-30 21:03   ` sternenseemann
2021-03-31 17:34     ` Ingo Schwarze
2021-03-31 19:33       ` sternenseemann
2021-04-10 15:57       ` [PATCH v2 makewhatis] refactor HOMEBREWDIR into READ_ALLOWED_PATH sternenseemann
2021-04-10 16:15         ` sternenseemann
2021-08-03 16:42           ` sternenseemann
2021-08-05 12:35             ` Ingo Schwarze
2021-08-07  0:29               ` sternenseemann
2021-08-07 13:17                 ` Ingo Schwarze

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \ \ \ \ \
    --subject='Re: [PATCH makewhatis] add NIXSTOREDIR configuration variable to support NixOS' \

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).