R CRAN Проверка: автоматический заголовок: предупреждение: отсутствует шаблон: HAVE_GSL_HEADER автоматический заголовок: использовать AC_DEFINE ([HAVE_GSL_HEADER], [], [Описание]) - PullRequest
0 голосов
/ 10 марта 2019

Недавно пакет в CRAN, который я поддерживаю, получает следующую ошибку: (Я ничего не менял - ошибки просто не было раньше - CRAN, вероятно, добавил дополнительные проверки)

Результат: вывод WARNот запуска autoreconf: autoheader: предупреждение: отсутствует шаблон: HAVE_GSL_HEADER autoheader: использовать AC_DEFINE ([HAVE_GSL_HEADER], [], [Description]) autoreconf: / usr / bin / autoheader завершилась неудачно с состоянием выхода: 1 Flavors: r-devel-linux-x86_64-fedora-clang, r-devel-linux-x86_64-fedora-gcc

Вот ссылка на контрольную страницу CRAN: https://cran.r -project.org / web / check/check_results_ridge.html

Кажется, что ошибка появляется только для r-devel-linux-x86_64-fedora-clang, r-devel-linux-x86_64-fedora-gcc.

Github Ссылка на пакет Исходный код: https://github.com/SteffenMoritz/ridge

Пакет использует GSL lib.(если кто-то задается вопросом о GSL в сообщении об ошибке)

К сожалению, я только перешел на обслуживание пакета и не слишком разбираюсь в вещах на языке C.

Полагаю, ошибкасообщение не имеет ничего общего с частью R пакета.Должен ли я добавить AC_DEFINE где-нибудь в файлах C?

Может кто-нибудь объяснить мне, что именно говорит мне сообщение об ошибке.Думаю, это уже может помочь мне разобраться.

edit : думаю, мне нужно что-то изменить в этом файле (только предположение) https://github.com/SteffenMoritz/ridge/blob/master/configure.ac

Нокод там следующий:

if test "${HAVE_GSL}" = TRUE; then
dnl Define HAVE_GSL_H in src/config.h
    AC_CHECK_HEADERS([gsl/gsl_version.h],AC_DEFINE(HAVE_GSL_HEADER), [HAVE_GSL=FALSE])
    if test "${HAVE_GSL}" = FALSE; then
       AC_MSG_WARN([gsl headers not found, perhaps check the path?])
       AC_MSG_WARN([ridge will be installed, but some functions will be 
unavailable])
    fi
fi

Так что, похоже, есть оператор AC_DEFINE (HAVE_GSL_HEADER), [HAVE_GSL = FALSE]) .

1 Ответ

1 голос
/ 13 марта 2019

Поместите нижеприведенное в файл с именем diff.patch или что угодно в верхнем каталоге.

diff --git a/configure.ac b/configure.ac
index e643140..0b256a6 100644
--- a/configure.ac
+++ b/configure.ac
@@ -22,7 +22,8 @@ fi

 if test "${HAVE_GSL}" = TRUE; then
 dnl Define HAVE_GSL_H in src/config.h
-    AC_CHECK_HEADERS([gsl/gsl_version.h],AC_DEFINE(HAVE_GSL_HEADER),[HAVE_GSL=FALSE])
+    AC_CHECK_HEADERS([gsl/gsl_version.h],
+    AC_DEFINE(HAVE_GSL_HEADER, [], [Description]),[HAVE_GSL=FALSE])
     if test "${HAVE_GSL}" = FALSE; then
        AC_MSG_WARN([gsl headers not found, perhaps check the path?])
        AC_MSG_WARN([ridge will be installed, but some functions will be unavailable])

Выполнить patch -p1 < diff.patch.
* * * * * * * * * * * * * * * * * * * * * * * autoreconf должен все прекрасно перестроить

...