From: Arseny Maslennikov <arseny@altlinux.org> To: ALT Linux Team development discussions <devel@lists.altlinux.org> Subject: Re: [devel] I: cmake macros Date: Mon, 31 May 2021 16:52:20 +0300 Message-ID: <YLTqFKjX/R+P0eHT@cello> (raw) In-Reply-To: <20210531162831.cf38dca70ecca7d37808099d@altlinux.org> [-- Attachment #1: Type: text/plain, Size: 7448 bytes --] On Mon, May 31, 2021 at 04:28:31PM +0300, Andrey Savchenko wrote: > On Mon, 31 May 2021 15:53:25 +0300 Arseny Maslennikov wrote: > > On Mon, May 31, 2021 at 03:13:54PM +0300, Anton Farygin wrote: > > > On 31.05.2021 15:09, Sergey V Turchin wrote: > > > > > > > Я знаю про это задание, но в этом изменении слишком кардинально меняется > > > содержимое макроса, что вряд ли приемлемо для stable репозитория. > > > > > > Т.е. - условно говоря если раньше макрос ничего не делал, то теперь делает. > > > > В 272559 все пакеты, явно использовавшие %cmake_install в его > > (бесполезном, кмк) старом значении, исправлены. > > > > > > Да и с BUILD непонятно зачем сделано. Было бы интересно услышать комментарии > > > по этому поводу. > > > > Одна из преследуемых целей — спеки не должны зависеть от конкретного > > значения %_cmake__builddir, которое они не выставили явно, поэтому их > > исправление там, где в них явно про некоторые файлы написано BUILD/*, > > всё равно планировалось. Изменив BUILD на что-то ещё, легко узнать > > список всех пакетов, нарушающих этот принцип. > > > > Файловые объекты с "простым" именем BUILD, build, ... с заметной долей > > вероятности могут уже присутствовать в > > /usr/src/RPM/BUILD/$tarball_root, что вносит в подготовку спека лишний > > неавтоматизируемый шаг по корректной/удобной починке ошибки EEXIST на > > `mkdir %_cmake__builddir'. > > mkdir -p решает эту проблему в 99.999% случаев (теоретически > возможно, что BUILD — это файл или используетс апстримом для иных > нужд, но на практике такое вряд ли встречается). Я встречал 2 раза, это уже больше, чем 0.001%. :) Например, в проектах на google c++-стеке встречаются сборочные скрипты для Bazel, точка входа в которые называется именно BUILD. В одном пакете я даже видел ln -s build BUILD. > > > В долгосрочной перспективе нам уместно > > (медленно, но верно) стремиться к тому, чтобы спеки можно было на ~~90% > > писать автоматически. > > Viy@ давно разработал и предлагает неплохие инструменты > автоматизации, но его идеи раз за разом отвергают. У меня сложилось впечатление, что основные причины недоверия — высокий порог входа в эти инструменты других мейнтейнеров и непонятная выпускающим менеджерам репозитория цепочка ответственности за разломы этого репозитория. По тем или иным причинам их не встраивают в рекомендуемый workflow, например, новичка в ALT Linux Team; новички о них не знают, а матёрым мейнтейнерам надо ехать, а не автомобиль проектировать. > Чем данная > ситуация отличаются? У нас большая часть разработчиков считает, что > писать спеки нужно вручную. И в случае со сложными, нетривиальными > пакетами они правы. Но если и CPAN и т.п., где подход viy@ куда > более практичен. > > > Остаётся только одно соображение в защиту имени BUILD: при ручном > > вмешательстве человека с клавиатурой в хешерницу с результатом > > почему-либо упавшей сборки %_target_platform (или первые 1-2 символа и > > tab-complete) придётся набирать руками. С этой точки зрения значение по > > умолчанию "build-%_target_platform" или даже "build" было бы лучше, а > > "BUILD" — хуже этих двух, потому что shift надо нажимать и коллизия с > > /usr/src/RPM/BUILD. > > > > Вот я и остановился перед выбором из четырёх: > > %_target_platform, build-%_target_platform, build, build-%name-%EVR и > > выбрал первое. Но я на своём варианте не настаиваю, и об этом умолчании > > можно договориться и поменять в сизифе в любой момент обозримого > > будущего, не сломав ни один спек. > > > > Так оказалось, что %_target_platform довольно удобен: > > конкретно %_target_platform уже используется у нас в макросах для meson, > > например; никто не жаловался на возникающие сбои. Да и при чтении лога > > семейство архитектур лишний раз бросается в глаза. В самих спеках > > %_target_platform явно употребляться не будет, коллизия по имени с уже > > существующими файлами маловероятна. > > > > Константным выражением, на которое можно положиться в спеке, выступает > > %_cmake__builddir; многие исправленные спеки в обсуждаемом сборочном > > задании явно используют этот макрос там, где cmake --install не хватает > > и надо руками залезть. > > По-моему, ты перемудрил: решая несуществующую проблему с именем > BUILD по-умолчанию и теоретически (и только!) возможной коллизии, > ты создал очень даже практическую проблему лишнего уровня > абстракции и реальной поломки сотен пакетов. Откуда же там сотни? specs% git grep '%cmake_build [A-Z_a-z]' | wc 45 96 2162 Случаи, не входящие сюда, могут быть рассмотрены в единичном порядке. [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 833 bytes --]
next prev parent reply other threads:[~2021-05-31 13:52 UTC|newest] Thread overview: 80+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-05-31 9:20 Arseny Maslennikov 2021-05-31 10:09 ` Andrey Cherepanov 2021-05-31 10:22 ` Grigory Ustinov 2021-05-31 10:38 ` Andrey Cherepanov 2021-05-31 10:50 ` Arseny Maslennikov 2021-05-31 11:06 ` Andrey Cherepanov 2021-05-31 11:53 ` [devel] noarch check failed Dmitry V. Levin 2021-05-31 14:26 ` Vladimir D. Seleznev 2021-05-31 14:28 ` Dmitry V. Levin 2021-05-31 14:32 ` Vladimir D. Seleznev 2021-05-31 14:55 ` Dmitry V. Levin 2021-05-31 17:03 ` Andrey Savchenko 2021-05-31 17:36 ` Vladimir D. Seleznev 2021-05-31 14:30 ` Arseny Maslennikov 2021-05-31 15:06 ` Arseny Maslennikov 2021-05-31 15:52 ` Yuri Sedunov 2021-06-01 9:16 ` Yuri Sedunov 2021-05-31 10:45 ` [devel] I: cmake macros Arseny Maslennikov 2021-05-31 13:49 ` Aleksei Nikiforov 2021-05-31 14:06 ` [devel] noarch check failing Arseny Maslennikov 2021-05-31 16:33 ` [devel] I: cmake macros Arseny Maslennikov 2021-06-01 7:44 ` Aleksei Nikiforov 2021-05-31 10:39 ` Dmitry V. Levin 2021-05-31 10:46 ` Arseny Maslennikov 2021-05-31 12:02 ` Anton Farygin 2021-05-31 12:09 ` Sergey V Turchin 2021-05-31 12:13 ` Anton Farygin 2021-05-31 12:53 ` Arseny Maslennikov 2021-05-31 12:58 ` Sergey V Turchin 2021-05-31 13:02 ` Sergey V Turchin 2021-05-31 14:22 ` Arseny Maslennikov 2021-05-31 15:00 ` Anton Farygin 2021-05-31 15:04 ` Sergey V Turchin 2021-05-31 15:19 ` Anton Farygin 2021-06-02 7:58 ` Sergey V Turchin 2021-05-31 15:01 ` Sergey V Turchin 2021-05-31 13:06 ` Sergey V Turchin 2021-05-31 13:09 ` Sergey V Turchin 2021-05-31 13:11 ` Sergey V Turchin 2021-05-31 13:17 ` Sergey V Turchin 2021-05-31 13:28 ` Andrey Savchenko 2021-05-31 13:52 ` Arseny Maslennikov [this message] 2021-05-31 14:28 ` Arseny Maslennikov 2021-05-31 14:39 ` Andrey Savchenko 2021-05-31 14:52 ` [devel] циферки (was: I: cmake macros) Arseny Maslennikov 2021-05-31 14:57 ` Andrey Savchenko 2021-05-31 15:10 ` Arseny Maslennikov 2021-05-31 15:18 ` Andrey Savchenko 2021-05-31 18:07 ` [devel] I: cmake macros Arseny Maslennikov 2021-06-02 7:56 ` Sergey V Turchin 2021-06-15 17:40 ` Mikhail Novosyolov 2021-05-31 15:01 ` Andrey Savchenko 2021-05-31 15:29 ` Arseny Maslennikov 2021-05-31 15:38 ` Anton Farygin 2021-05-31 15:43 ` Grigory Ustinov 2021-05-31 17:40 ` Andrey Savchenko 2021-05-31 15:51 ` Andrey Savchenko 2021-05-31 16:15 ` Arseny Maslennikov 2021-05-31 17:11 ` Andrey Savchenko 2021-06-02 8:02 ` Sergey V Turchin 2021-06-04 8:49 ` Sergey V Turchin 2021-06-15 12:20 ` Sergey Afonin 2021-06-15 18:26 ` Arseny Maslennikov 2021-06-16 19:00 ` Mikhail Novosyolov 2021-06-16 20:31 ` Vladislav Zavjalov 2021-06-22 5:24 ` Michael Shigorin 2021-06-22 8:51 ` Arseny Maslennikov 2021-06-23 10:55 ` Sergey Afonin 2021-06-23 11:21 ` Arseny Maslennikov 2021-07-07 10:37 ` Nikolai Kostrigin 2021-07-07 11:35 ` [devel] MySQL в p9 (was: I: cmake macros) Arseny Maslennikov 2021-07-07 12:17 ` Nikolai Kostrigin 2021-07-07 16:18 ` [devel] I: cmake macros Arseny Maslennikov 2021-07-08 11:34 ` Nikolai Kostrigin 2021-06-25 14:30 ` [devel] I: cmake macros already in p9 Arseny Maslennikov 2021-07-06 6:22 ` Sergey Afonin 2021-07-06 9:31 ` [devel] MySQL + mysql-workbench-community в p9 (was Re: I: cmake macros already in p9) Nikolai Kostrigin 2021-07-06 9:51 ` Nikolai Kostrigin 2021-07-06 12:43 ` Nikolai Kostrigin 2021-07-06 15:27 ` Sergey Y. Afonin
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=YLTqFKjX/R+P0eHT@cello \ --to=arseny@altlinux.org \ --cc=devel@lists.altlinux.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
ALT Linux Team development discussions This inbox may be cloned and mirrored by anyone: git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \ devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru public-inbox-index devel Example config snippet for mirrors. Newsgroup available over NNTP: nntp://lore.altlinux.org/org.altlinux.lists.devel AGPL code for this site: git clone https://public-inbox.org/public-inbox.git