Нужен ли Autotools?

Что: a39147139989a8b7691927565501f986f93a9fc2

Когда: 2022-05-02 13:26:37+03:00

Темы: redo

Нужен ли Autotools?

https://www.owlfolio.org/development/autoconf-swot/
https://lwn.net/Articles/834682/
Автор одного из релизов Autoconf описывает за и против использования
этой системы. Не раз много где было сказано, его актуальность, из-за
куда лучшей совместимости и стандартизации между разными ОС, мала.
Среди опасностей для этой экосистемы выделяет тенденцию и любовь
собираться из git checkout-ов и vendor-изации зависимостей.

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

комментарий 0:

From: David Rabkin
Date: 2022-05-08 01:28:55Z

Перешел с apenwarr/redo на твою goredo, смотри контейнеры:
 https://github.com/rdavid/shellbase

Это — песня и сказка по производительности. Спасибо!

Замечания по ходу:
- Нет длинных имен параметров. В скриптах я люблю писать --jobs, а не -j.
- Есть баг в описании: нужно -j=10, а не -j 10.

И, главное, я не понял, как тебе патчи посылать.

комментарий 1:

From: Sergey Matveev
Date: 2022-05-08 07:12:33Z


>Перешел с apenwarr/redo на твою goredo

Здорово!

>- Нет длинных имен параметров. В скриптах я люблю писать --jobs, а не -j.

Я тоже люблю и стараюсь, именно в скриптах, писать длинные параметры.
Self-describing, так сказать. Но стандартная flag библиотека только одно
имя для флага позволяет задавать. Поэтому или:


  парсинга аргументов командной строки. Чего мне очень не хочется

  ссылались на одну и ту же переменную. Геморрой

  не приняты. Да и, собственно, POSIX-овский getopt длинные опции не
  принимает, поэтому код с короткими и длинными опциями был бы не POSIX
  (использовал getopt_long) или имел бы собственный (ну или third-party)
  парсер

Я оставил короткие опции ради некой совместимости с другими redo
реализациями. А конкретно "-j" всё же используется и в Make-ах и даже в
какой-нибудь ninja -- это что-то типа уже принятой условности.

Я не то чтобы защищаю короткие опции и "-j", но ради длинной опции, коих
не много в goredo, что-то усложнять или добавлять зависимость не хочу.

>- Есть баг в описании: нужно -j=10, а не -j 10.

"-j X" точно работает. Я только так его и использую, в том числе
проверял на GNU/Linux системах. "-j=10" тоже будет работать, но чем это
написание было бы лучше? Ты точно не путаешь "-jX" и "-j X"? Первый
вариант, который бы работал в Make-ах, в goredo, действительно, не
сработает (опять же, ограничение стандартного парсера).

>И, главное, я не понял, как тебе патчи посылать.

Ну на главной странице сайта или info файла написано:

       Please send questions, bug reports and patches to goredo-devel
    (http://lists.cypherpunks.ru/goredo_002ddevel.html) maillist.
    Announcements also go to this mailing list.

комментарий 2:

From: David Rabkin
Date: 2022-05-08 15:00:55Z

> Но стандартная flag библиотека только одно имя для флага позволяет задавать.
Почитал мануал, ты прав.

> делая по две опции, которые бы ссылались на одну и ту же переменную
Это не так уж очевидно сделать, библиотека сопротивляется. Юникс-вей!

> ради некой совместимости с другими
Как раз, у apenwarr/redo есть длинные параметры :-)

> "-j X" точно работает.
Это у меня баг был, я же redo в контейнерах запускаю. Внимательный
читатель, найди баг.
Не работает:
 CMD [ "redo", "-j 10", "-x", "test" ]
Работает:
 CMD [ "redo", "-j=10", "-x", "test" ]
Полный файл:
 https://github.com/rdavid/shellbase/blob/master/container/alpine/Containerfile

Также не понял, как твой паблик ки в скрипте добавлять для жипижи. И
имеет ли такая проверка смысл в скриптах? По-моему, нет.

комментарий 3:

From: Sergey Matveev
Date: 2022-05-08 15:35:29Z


>> делая по две опции, которые бы ссылались на одну и ту же переменную
>Это не так уж очевидно сделать, библиотека сопротивляется. Юникс-вей!

Я это сказал наобум, ни разу не делав :-)

>Как раз, у apenwarr/redo есть длинные параметры :-)

Ну вот я только у него вроде их и видел. В Python argparse позволяет
сразу же задавать и длинное и короткое имя параметра. В общем -- я тоже
люблю длинные (в скриптах), но тут уж ради похожести на преобладающее
большинство остальных, оставляю короткие.

>CMD [ "redo", "-j 10", "-x", "test" ]

Это частая ошибка :-)

>Также не понял, как твой паблик ки в скрипте добавлять для жипижи. И
>имеет ли такая проверка смысл в скриптах? По-моему, нет.

Если в скрипте чётко прибивается версия, чётко заданный URL, то я бы
просто прибивал проверку напротив хэша. Типа как тут:
http://www.git.cypherpunks.ru/?p=gostls13.git;a=blob;f=gogost-install.sh;h=19a9b484ecbc565ab96fab8997e8c493952be792;hb=c69d405a5cd758c8a4ee6d150a749f780f9ca972
Проверка подписи тут уж ничего дополнительного не даст -- мне тоже так
кажется. Проверку ты, как автор shellbase, делаешь один раз, получаешь
на её основе доверие к tarball-у, и прибиваешь это доверие гвоздями к
конкретному хэшу.

комментарий 4:

From: David Rabkin
Date: 2022-05-08 21:33:26Z

>прибивал проверку напротив хэша
Так и сделал!

Сгенерирован: SGBlog 0.34.0