LINUX.ORG.RU

Выпуск GNU Autoconf 2.70

 , , ,


0

2

Неделю назад, спустя восемь лет с момента прошлого релиза, тихо и незаметно был выпущен GNU Autoconf 2.70, утилиты для создания конфигурационных скриптов, используемых для сборки и установки программ.

Примечательные изменения включают:

  • поддержку стандарта C/C++ 2011 года,
  • поддержку воспроизводимых сборок,
  • улучшенную совместимость с актуальными компиляторами и шелл утилитами,
  • улучшенную поддержку кросс-компиляции,
  • большое количество баг-фиксов и мелких улучшений,
  • 12 новых фич.

Разработчики заявляют, что не смогли сохранить обратную совместимость, обновляться следует с осторожностью. Со списком несовместимостей, новых фич и баг-фиксов можно ознакомиться по ссылке ниже.

>>> Подробности



Проверено: Shaman007 ()

Ответ на: комментарий от mono

А есть что-то, похожее на Cargo? Ну или что-то, что автоматом подтягивает зависимости и складывает куда надо (изолированно). А то иногда приходится небольшие либы на си писать, но это всегда боль.

rbbtnspc
()
Ответ на: комментарий от fsb4000

О, хоть пакеты не от автора build2 появились. К сожалению оно очень дубовое и навязывает неудобную структуру.

xaizek ★★★★★
()

поддержку воспроизводимых сборок,

Интересно, а раньше нельзя было? А я и не знал, и собирал…

anonymous
()
Ответ на: комментарий от rbbtnspc

что-то, что автоматом подтягивает зависимости и складывает куда надо (изолированно).

Gentoo в chroot.

anonymous
()
Ответ на: комментарий от rbbtnspc

Хочешь превратить всё в cargo/nodejs помойку? Есть менеджеры, но они не взлетели по причине ненужности.

anonymous
()
Ответ на: комментарий от rbbtnspc

к счастью похожие на cargo не взлетели. я пользуюсь nix’ом. он управляет окружением, не «зависимости для си». сам сижу на nixos, но с успехом пользуюсь и на debian.

zerhud
()
Ответ на: комментарий от anonymous

Некоторые пользуются. Но в основном у всех либо cmake либо своя система сборки. Коммерческий софт вообще не пользуюется.

Reset ★★★★★
()

поддержку воспроизводимых сборок,

Подскажите, пожалуйста, что здесь имеется в виду?

anonymous
()
Ответ на: комментарий от anonymous

иногда при повторной сборке получаются немного отличающиеся бинари, видимо что-то добавили для получения идентичных файлов

Leron ★★
()
Ответ на: комментарий от anonymous

поддержку воспроизводимых сборок,

Подскажите, пожалуйста, что здесь имеется в виду?

Это когда у тебя есть проект, на выходе после сборки бинарь mega_large_penis.

Ты раз собрал свой пенис, сделал:

$ penis1_md5=$(md5sum mega_large_penis)

Потом сходил, попил пивка, покакал, помыл попу. Вернулся, ничего не менял в исходниках, почистил сборочную директорию, запустил сборку с такими же параметрами, собрал второй пенис и сделал:

$ penis2_md5=$(md5sum mega_large_penis)

Смотришь, а чексуммы обоих пенисов совпадают. То есть ты можешь производить абсолютно идентичные пенисы!

BackDoorLover
()
Ответ на: комментарий от anonymous

Похоже на это исправление:

*** AC_INIT and AS_INIT no longer embed (part of) the path to the
    source directory in generated files.

  We believe this was the only case where generated file contents
  could change depending on the environment outside the source tree
  itself.  If you find any other cases please report them as bugs.

Из забавного:

*** AC_FC_LINE_LENGTH now documents the maximum portable length of
    "unlimited" Fortran source code lines to be 250 columns, not 254.
xaizek ★★★★★
()
Ответ на: комментарий от BackDoorLover

Смотришь, а чексуммы обоих пенисов совпадают. То есть ты можешь производить абсолютно идентичные пенисы!

Это уже есть у компиляторов Си или плюсов?

Раньше было невозможно такое сделать.

anonymous
()
Ответ на: комментарий от anonymous
gcc detects the existence of the SOURCE_DATE_EPOCH environment variable. If this variable is set, its value specifies a UNIX timestamp to be used in replacement of the current date and time in the __DATE__ and __TIME__ macros so that the embedded timestamps become reproducible. The value can be set to a known timestamp such as the last modification time of the source or package.

clang makes use of ZERO_AR_DATE that if set, resets the timestamp that is introduced in the archive files setting it to epoch 0. Take into account that this will not fix the __DATE__ or __TIME__ macros. If we want to fix the effect of this macros we should either patch the binaries or fake the system time.
BackDoorLover
()

поддержку стандарта C/C++ 2011 года,

Объясните, зачем системе сборке поддерживать стандарты C++? Я вот GNU Make собираю, и он поддерживает всё то, что поддерживает gcc

Crocodoom ★★★★★
()

Ура! Лучшая система сборки всех времён и народов! Живее всех живых! Уверуйте в истинную систему сборки, отбросьте еретические си-мейки и мезоны! Да прибудет с вами юникс-вей и дух свободного ПО!

Harald ★★★★★
()
Ответ на: комментарий от Reset

Коммерческий софт вообще не пользуюется.

Я видел некоторый. Серьёзный ынтырпразй, большие деньги. Но это было не от хорошей жизни, и никому не помогало.

LamerOk ★★★★★
()
Ответ на: комментарий от Crocodoom

Речь о добавлении макросов для проверки наличия новый фич и стандартов.

*** AC_PROG_CC now enables C2011 mode if the compiler supports it.

  If not, it will fall back to C99 and C89, as before.  Similarly,
  AC_PROG_CXX now enables C++2011 if available, falling back on C++98.

*** New macro AC_C__GENERIC tests for C2011 _Generic support.

*** AC_C_VARARRAYS has been aligned with C2011.

  It now defines __STDC_NO_VLA__ if variable-length arrays are not
  supported but the compiler does not define __STDC_NO_VLA__.

  For backward compatibility with Autoconf 2.61-2.69 AC_C_VARARRAYS
  still defines HAVE_C_VARARRAYS, but this result macro is obsolescent.
xaizek ★★★★★
()
Ответ на: комментарий от Crocodoom

Объясните, зачем системе сборке поддерживать стандарты C++?

Потому что в разных компиляторах по разному задаются стандарты? И если система сборки знает стандарты С++, то убирается дублирование для разных компиляторов…

/std:c++17

или

-std=c++17
fsb4000 ★★★★★
()
Ответ на: комментарий от anonymous

Я делал и ничего мне не мешало. Расскажите как вы защищаете свои рабочие станции? (комментарий)

Компилятор gcc полностью поддерживает воспроизводимые сборки. Надо настроить переменные среды и добавить некие флаги.

Желающие потестить есть? Конечно ISO образ bit to bit собрать пока не получится, ключи будут у каждого свои ctime у каждого свой, но хеши всех бинарей, библиотек, настроек, … совпадут!

Repruduction важная часть проверки системы сборки на вирусы. Бинари собранные в РФ и Годурасе должны бить идентичны.

anonymous
()
Ответ на: комментарий от anonymous

Надо настроить переменные среды и добавить некие флаги.

Нет нигде списка переменных и флагов?

anonymous
()
Ответ на: комментарий от anonymous

У меня в /etc/portage/make.conf давно уже.

В gcc-5., gcc-7. reproduction точно работает.

anonymous
()
Ответ на: комментарий от anonymous

У меня в /etc/portage/make.conf есть. ;)

Найди где для ядра Линукс время сборки прописывается, то что выводится uname -a и я дам необходимые и достаточные переменные среды и флаги для повторяемые сборок в gcc. На версию сборки я уже патч сделал, надо время зафиксировать.

anonymous
()
Ответ на: комментарий от Reset

C++11 это просто новый стандарт по умолчанию, видимо как-то так.

xaizek ★★★★★
()
Ответ на: комментарий от rbbtnspc

Не жили хорошо

Ну, жили-то как раз довольно таки не плохо, пока какому-то идиоту не пришла в голову дебильная идея лепить из исходников хер пойми что хер пойми где, а потом слепленное компилировать и выдавать за программу. И было бы и дальше не плохо, если бы стадо дебилов не подхватило эту идиотскую идею, и не понесла код для лепки хер пойми чего из исходников прямо в эти самые исходники.

С тех пор-то весь «юникс» как инфраструктура в полной жопе.

LamerOk ★★★★★
()
Ответ на: комментарий от rbbtnspc

А есть что-то, похожее на Cargo? Ну или что-то, что автоматом подтягивает зависимости и складывает куда надо (изолированно). А то иногда приходится небольшие либы на си писать, но это всегда боль.

Основная проблема карго - таскание песочницы, туда, где она не нужна.

Причем опыт ruby с его тасканием песочницы ничему не научил.

anonymous
()
Ответ на: комментарий от rbbtnspc

Хочешь изолирование - scons, но что-то его эту фичу не очень то любят за излишнюю изолированность.

grem ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.