30.09.2020

Доступен GNU Autoconf 2.69b для тестирования изменений, потенциально нарушающих совместимость


После восьми лет с момента публикации версии 2.69 представлен выпуск пакета GNU Autoconf 2.69b, в котором поставляется набор M4-макросов для создания скриптов автоконфигурации для сборки приложений в различных Unix-подобных системах (на основе подготовленного шаблона выполняется генерации скрипта «configure»). Выпуск позиционируется как бета-версия будущей версии 2.70.

Значительный разрыв во времени с прошлым выпуском и предварительная публикация бета-версии объясняется включением в ветку 2.70 изменений, которые потенциально могут привести к нарушению совместимости с существующими скриптами Autoconf. Пользователям рекомендуется протестировать свои скрипты с предложенным выпуском и уведомить разработчиков в случае выявления проблем.

Среди изменений:

  • Обеспечено экранирование аргументов config.log в заголовочном комментарии. Улучшена читаемость вывода «config.status —config»;
  • В скрипт configure добавлена опция ‘—runstatedir’ для определения пути к каталогу /run с pid-файлами;
  • В autoreconf прекращена поддержка версий automake и aclocal, выпущенных раньше 1.8;
  • Рекомендовано использовать printf вместо echo, макросы AS_ECHO и AS_ECHO_N теперь преобразуются в ‘printf «%sn»‘ и ‘printf %s’. Переведены в разряд устаревших недокументированные переменные $as_echo и $as_echo_n, вместо которых следует использовать макросы AS_ECHO и AS_ECHO_N;
  • Многие макросы изменены для раскрытия аргументов только один раз для ускорения выполнения autoconf, что может сказаться на совместимости с некоторыми скриптами, не выполняющими корректных квотинг аргументов;
  • Некоторые макросы, такие как AC_PROG_CC, обычно используемые на начальной стадии работы скрипта configure, оптимизированы и больше не вызывают так много вторичных макросов. Изменение позволяет выявить несколько классов ошибок, как правило, вызванных использованием макроса AC_REQUIRE;
  • Макросы, принимающие списки аргументов, разделённых пробелом, теперь всегда раскрываются с каждым из перечисленных аргументов. Изменение затрагивает макросы AC_CHECK_FILES, AC_CHECK_FUNCS, AC_CHECK_FUNCS_ONCE, AC_CHECK_HEADERS, AC_CHECK_HEADERS_ONCE, AC_CONFIG_MACRO_DIRS, AC_CONFIG_SUBDIRS и AC_REPLACE_FUNCS;
  • Добавлены новые макросы AC_C__GENERIC, AC_CONFIG_MACRO_DIRS и AC_CHECK_INCLUDES_DEFAULT;
  • В макросе AC_PROG_CC при наличии теперь выбирается компилятор с поддержкой C11 (с откатом до C99 и C89, если не найден), а в AC_PROG_CXX — C++11 с откатом до C++98. Макросы AC_PROG_CC_STDC, AC_PROG_CC_C89 и AC_PROG_CC_C99 объявлены устаревшими.

Источник: https://www.opennet.ru/opennews/art.shtml?num=53361

Добавить комментарий