Что: 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-изации зависимостей. ------------------------------------------------------------------------ оставить комментарий: mailto:comment@blog.stargrave.org?subject=Re:%20%D0%9D%D1%83%D0%B6%D0%B5%D0%BD%20%D0%BB%D0%B8%20Autotools%3F%20%28a39147139989a8b7691927565501f986f93a9fc2%29 ------------------------------------------------------------------------ комментарий 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