git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] Respect definition of prefix from autotools in ETC_GITCONFIG and ETC_GITATTRIBUTES

From
Junio C Hamano <gitster@pobox.com>
Date
Apr 28, 2011, 16:54 UTC
Message-ID
<7v62py5nbp.fsf@alter.siamese.dyndns.org>
In-Reply-To
<20110428022922.GC4833@camk.edu.pl>
Kacper Kornet <kornet@camk.edu.pl> writes:
> Definitions of ETC_GITCONFIG and ETC_GITATTRIBUTES depend on value of
> prefix. As prefix can be changed in config.mak.autogen, all if blocks
> with conditions based on prefix should be placed after the file is
> included in Makefile.

This is _not_ just about autogen, is it? The same issue exists if the user wants to manually tweak prefix in config.mak, no?

If so, perhaps the patch needs to be retitled to avoid confusion, something like:

    Subject: Honor $(prefix) set in config.mak* when defining ETC_GIT* variables
Show 29 quoted lines
> diff --git a/Makefile b/Makefile
> index cbc3fce..5b4ae40 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -291,15 +291,8 @@ sharedir = $(prefix)/share
>  gitwebdir = $(sharedir)/gitweb
>  template_dir = share/git-core/templates
>  htmldir = share/doc/git-doc
> -ifeq ($(prefix),/usr)
> -sysconfdir = /etc
>  ETC_GITCONFIG = $(sysconfdir)/gitconfig
>  ETC_GITATTRIBUTES = $(sysconfdir)/gitattributes
> -else
> -sysconfdir = $(prefix)/etc
> -ETC_GITCONFIG = etc/gitconfig
> -ETC_GITATTRIBUTES = etc/gitattributes
> -endif
>  lib = lib
>  # DESTDIR=
>  pathsep = :
> @@ -1192,6 +1185,12 @@ endif
>  -include config.mak.autogen
>  -include config.mak
>  
> +ifeq ($(prefix),/usr)
> +sysconfdir = /etc
> +else
> +sysconfdir = etc
> +endif

It makes sense to change the definition of ETC_GIT* variables to a form that depends on a variable like your patch did, i.e.

    ETC_GITCONFIG = $(some_etc_prefix)/gitconfig
    ETC_GITATTRIBUTES = $(some_etc_prefix)/gitattributes

and define that variable, whose definition depends on $(prefix), after we have read config.mak* files. So I like the general direction of this patch.

But this part in the Makefile outside the context of the patch bothers me. It seems to imply that sysconfdir is _not_ that variable you want to define later.

   # Among the variables below, these:
   #   gitexecdir
   #   template_dir
   #   mandir
   #   infodir
   #   htmldir
   #   ETC_GITCONFIG (but not sysconfdir)
   #   ETC_GITATTRIBUTES
   # can be specified as a relative path some/where/else;

So I have a suspicion that your patch as is will break when prefix is set to something other than /usr directory. I don't think anybody in-tree currently uses sysconfdir, but that does not mean nobody will ever do.

Previous: Kacper KornetNext: Kacper Kornet
Message 2 of 26 in “Respect definition of prefix from autotools in ETC_GITCONFIG and ETC_GITATTRIBUTES”
  1. Respect definition of prefix from autotools in ETC_GITCONFIG and ETC_GITATTRIBUTESKacper Kornet, Apr 28, 2011
  2. Junio C HamanoApr 28, 2011
  3. Kacper KornetApr 28, 2011
  4. 1/1 Honor $(prefix) set in config.mak* when defining ETC_GIT* and sysconfdirKacper Kornet, Apr 28, 2011
  5. Honor sysconfdir when set as an configure optionKacper Kornet, Apr 28, 2011
  6. Junio C HamanoApr 28, 2011
  7. Kacper KornetApr 28, 2011
  8. Johannes SixtMay 3, 2011
  9. Junio C HamanoMay 3, 2011
  10. Johannes SixtMay 4, 2011
  11. Kacper KornetMay 4, 2011
  12. Johannes SixtMay 4, 2011
  13. Junio C HamanoMay 4, 2011
  14. Junio C HamanoMay 5, 2011
  15. Johannes SixtMay 5, 2011
  16. Junio C HamanoMay 5, 2011
  17. Johannes SixtMay 6, 2011
  18. Kacper KornetMay 5, 2011
  19. Johannes SixtMay 5, 2011
  20. Kacper KornetMay 5, 2011
  21. Junio C HamanoMay 5, 2011
  22. Johannes SixtMay 9, 2011
  23. Kacper KornetMay 9, 2011
  24. Kacper KornetMay 27, 2011
  25. Kacper KornetMay 5, 2011
  26. Kacper KornetMay 4, 2011

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.