Почему бы ради добуквенного совпадения не добавить макрос: %_runstatedir %_runtimedir либо %_runstatedir %_var/run ? Плюс было бы неплохо его также передавать в %configure. Такая идея пришла в голову после нахождения runstatedir здесь: https://www.gnu.org/prep/standards/html_node/Directory-Variables.html и ненахождения %_runstatedir у нас. Было бы удобно, так как заменить %_localstatedir на /var не получилось: #34083
(In reply to Anton Zhukharev from comment #0) > Плюс было бы неплохо его также передавать в %configure. Вот это предложение блокировано багом #42349.
Речь же по обоим предложениям не про rpm, а про rpm-build, верно? Для полноты картины, такая попытка уже была: https://lore.altlinux.org/devel/20210825082756.GA16086@altlinux.org/T/#u
(In reply to Gleb F-Malinovskiy from comment #2) > Речь же по обоим предложениям не про rpm, а про rpm-build, верно? Не помню почему повесил на rpm (ошибка?)...
(In reply to Anton Zhukharev from comment #0) > Плюс было бы неплохо его также передавать в %configure. Очень плохо передавать неизвестные параметры в configure. Мы попробовали 2 года назад, в результате сломалась сборка около 900 пакетов, откатили на следующий день, и больше не будем пробовать такое. Поскольку макрос %_runtimedir уже есть, непонятно, зачем нужен %_runstatedir, если его всё равно нельзя системно передавать в %configure.
(In reply to Dmitry V. Levin from comment #4) > (In reply to Anton Zhukharev from comment #0) > > Плюс было бы неплохо его также передавать в %configure. > > Очень плохо передавать неизвестные параметры в configure. > Мы попробовали 2 года назад, в результате сломалась сборка около 900 > пакетов, откатили на следующий день, и больше не будем пробовать такое. Чтобы configure не считал этот параметр неизвестным и не падал при запуске, необходимо обновить autoconf хотя бы до этого коммита (либо черрипикнуть его): http://git.savannah.gnu.org/gitweb/?p=autoconf.git;a=commit;h=a197431414088a417b407b9b20583b2e8f7363bd > Поскольку макрос %_runtimedir уже есть, непонятно, зачем нужен > %_runstatedir, если его всё равно нельзя системно передавать в %configure. Скорее косметическое предложение - "ради добуквенного совпадения". Плюс недавно встретил проект, который относительно активно развивается и использует localstatedir как префикс для /run, что у нас вызывает проблемы, поскольку у нас %_localstatedir/run != /var/run. При этом перезапись в configure --localstatedir=%_var тоже вызывает вопросы, поскольку эта переменная затем также попадает в конфигурационный файл проекта. Проект поддерживает модульность, поэтому такой вариант перезаписи меня не устраивает из-за потенциальных проблем связанных с тем, что подмодули будут тоже класть свои файлы не туда куда нужно. В связи с этим написал в апстрим просьбу рассмотреть использование runstatedir, а не полагаться на то, что везде runstatedir == localstatedir/run. Затем чуток пропатчил Makefile.in, добавил опцию --runstatedir=%_runtimedir, запустил сборку и увидел, как наш autoconf понятия не имеет что это за runstatedir такой. После этого решил предложить добавить нам такой макрос %_runstatedir (для добуквенного совпадения с тем, что используют в стандартах GNU), обновить autoconf и добавлять этот макрос в %configure.
(In reply to Anton Zhukharev from comment #5) > (In reply to Dmitry V. Levin from comment #4) > > (In reply to Anton Zhukharev from comment #0) > > > Плюс было бы неплохо его также передавать в %configure. > > > > Очень плохо передавать неизвестные параметры в configure. > > Мы попробовали 2 года назад, в результате сломалась сборка около 900 > > пакетов, откатили на следующий день, и больше не будем пробовать такое. > Чтобы configure не считал этот параметр неизвестным и не падал при запуске, > необходимо обновить autoconf хотя бы до этого коммита (либо черрипикнуть > его): > http://git.savannah.gnu.org/gitweb/?p=autoconf.git;a=commit; > h=a197431414088a417b407b9b20583b2e8f7363bd Не во всех использующих %сonfigure пакетах ./confiugre получен autoconf'ом. Даже в тех, где он получен autoconf'ом, не все делают %autoreconf, и часто у них на это есть объективные причины.
(In reply to Ivan A. Melnikov from comment #6) > (In reply to Anton Zhukharev from comment #5) > > (In reply to Dmitry V. Levin from comment #4) > > > (In reply to Anton Zhukharev from comment #0) > > > > Плюс было бы неплохо его также передавать в %configure. > > > > > > Очень плохо передавать неизвестные параметры в configure. > > > Мы попробовали 2 года назад, в результате сломалась сборка около 900 > > > пакетов, откатили на следующий день, и больше не будем пробовать такое. > > Чтобы configure не считал этот параметр неизвестным и не падал при запуске, > > необходимо обновить autoconf хотя бы до этого коммита (либо черрипикнуть > > его): > > http://git.savannah.gnu.org/gitweb/?p=autoconf.git;a=commit; > > h=a197431414088a417b407b9b20583b2e8f7363bd > > Не во всех использующих %сonfigure пакетах ./confiugre получен autoconf'ом. > Даже в тех, где он получен autoconf'ом, не все делают %autoreconf, и часто у > них на это есть объективные причины. Отличный аргумент, сам встречался с таким несколько раз. В таком случае добавление опции к %configure - действительно очень сложное решение. В таком случае лучше обойтись только обновлением autoconf и тем кому надо, смогут использовать эту опцию явно. Поэтому ради лишь добуквенного совпадения прошу добавить синоним вида: %_runstatedir %_runtimedir (кстати, почему у нас именно runtimedir, а не runstatedir?) Также интересно было бы узнать, сколько пакетов "не смогут переварить" runstatedir на данный момент.
rpm-build-4.0.4.190-alt1 -> sisyphus: Sun Jul 23 2023 Gleb F-Malinovskiy <glebfm@altlinux> 4.0.4.190-alt1 - Added the new %_runstatedir macro as an alias to %_runtimedir (ALT#46988). - Modified the behavior of the %configure macro (ALT#46988): + to pass the --runstatedir option when it is supported by the configure script; + to disable detection and passing of the --runstatedir if the %_configure_use_runstatedir macro is undefined.