Нужен ли 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
- ** David Rabkin [2022-05-08 04:27]:
>Перешел с apenwarr/redo на твою goredo
Здорово!
>- Нет длинных имен параметров. В скриптах я люблю писать --jobs, а не -j.
Я тоже люблю и стараюсь, именно в скриптах, писать длинные параметры.
Self-describing, так сказать. Но стандартная flag библиотека только одно
имя для флага позволяет задавать. Поэтому или:
- использовать стороннюю дополнительную зависимость, другую библиотеку
парсинга аргументов командной строки. Чего мне очень не хочется
- или усложнять и дублировать goredo код, делая по две опции, которые бы
ссылались на одну и ту же переменную. Геморрой
- ну или считать что это что-то типа BSD-like утилиты, где длинные опции
не приняты. Да и, собственно, 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
- ** David Rabkin [2022-05-08 17:59]:
>> делая по две опции, которые бы ссылались на одну и ту же переменную
>Это не так уж очевидно сделать, библиотека сопротивляется. Юникс-вей!
Я это сказал наобум, ни разу не делав :-)
>Как раз, у 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