Скомпилировать Git без gettext - PullRequest
0 голосов
/ 11 июня 2018

Я пытаюсь скомпилировать статический Git 2.17.1 в Debian (подсистема Windows для Linux):

$ mkdir _git
$ make configure
$ ./configure --prefix=$PWD/_git NO_TCLTK=true NO_GETTEXT=true CFLAGS="${CFLAGS} -static"
$ make all

, но я получаю сообщение об ошибке

...
    MSGFMT po/build/locale/pt_PT/LC_MESSAGES/git.mo
/bin/sh: 1: msgfmt: not found
Makefile:2309: recipe for target 'po/build/locale/pt_PT/LC_MESSAGES/git.mo' failed
make: *** [po/build/locale/pt_PT/LC_MESSAGES/git.mo] Error 127

информация о NO_GETTEXT у меня есть из файла конфигурации:

# Define NO_GETTEXT if you don't want Git output to be translated.

Тем не менее, нужно ли msgfmt?

Ответы [ 3 ]

0 голосов
/ 09 августа 2018

Переменная NO_GETTEXT устанавливается скриптом настройки.Если на хосте сборки есть среда выполнения gettext, для нее установлено значение false.

У вас есть несколько вариантов решения этой проблемы:

  • Установите инструменты gettext (включая msgfmt) на вашу сборку.host.
  • Установите фиктивную msgfmt, которая просто создает пустой выходной файл.
  • /usr/bin/touch все .mo файлы перед запуском make и убедитесь, что их время последнего измененияболее поздние, чем файлы .po.
  • Исправьте Makefile перед запуском make.Установка переменной MOFILES в пустое состояние выглядит многообещающе.

Возможно, вам все равно придется пропатчить Makefile, так что, возможно, просто перейдите к последнему варианту.

0 голосов
/ 03 мая 2019

Это сработало для меня.

make NO_GETTEXT=YesPlease

0 голосов
/ 11 июня 2018

Попробуйте с 1 вместо истинного ...

https://www.atlassian.com/git/tutorials/install-git

NO_GETTEXT=1
...