From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <vseleznv@altlinux.org> Date: Mon, 30 Aug 2021 16:33:48 +0000 From: "Vladimir D. Seleznev" <vseleznv@altlinux.org> To: ALT Linux Team development discussions <devel@lists.altlinux.org> Message-ID: <YS0IbEMo3mUgW8T0@portlab> References: <CAEdvWkROU3cSn7tnUczNR6h_xi1_E4thoDjWa1xfE+zCPmaV5Q@mail.gmail.com> <CAEdvWkROx_Np+1qjec2AprA5-LZdGWNg3TxvV9qwZxzsycXHvQ@mail.gmail.com> <YSj5utKuJs/vQwjY@portlab> <CAEdvWkTxVCA9-qSBmpyEj_KFHg6abiF50GcnfnVfSib0k6FPRQ@mail.gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <CAEdvWkTxVCA9-qSBmpyEj_KFHg6abiF50GcnfnVfSib0k6FPRQ@mail.gmail.com> Subject: Re: [devel] I: rpm macroses for systemd X-BeenThere: devel@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: ALT Linux Team development discussions <devel@lists.altlinux.org> List-Id: ALT Linux Team development discussions <devel.lists.altlinux.org> List-Unsubscribe: <https://lists.altlinux.org/mailman/options/devel>, <mailto:devel-request@lists.altlinux.org?subject=unsubscribe> List-Archive: <http://lists.altlinux.org/pipermail/devel> List-Post: <mailto:devel@lists.altlinux.org> List-Help: <mailto:devel-request@lists.altlinux.org?subject=help> List-Subscribe: <https://lists.altlinux.org/mailman/listinfo/devel>, <mailto:devel-request@lists.altlinux.org?subject=subscribe> X-List-Received-Date: Mon, 30 Aug 2021 16:33:49 -0000 Archived-At: <http://lore.altlinux.org/devel/YS0IbEMo3mUgW8T0@portlab/> List-Archive: <http://lore.altlinux.org/devel/> List-Post: <mailto:devel@altlinux.org> On Fri, Aug 27, 2021 at 07:00:33PM +0300, Alexey Shabalin wrote: > пт, 27 авг. 2021 г. в 17:42, Vladimir D. Seleznev <vseleznv@altlinux.org>: > > > > On Fri, Aug 27, 2021 at 02:51:56PM +0300, Alexey Shabalin wrote: > > > пт, 27 авг. 2021 г. в 14:47, Alexey Shabalin <a.shabalin@gmail.com>: > > > > > > > > День добрый. > > > > Добрый день! > > > > > > ЕÑÑ‚ÑŒ пара новоÑтей Ð´Ð»Ñ Ð°Ð½Ð¾Ð½Ñа. > > > > > > > > rpm макроÑÑ‹, иÑпользуемые в апÑтрим (а также в RH, SUSE), > > > > https://github.com/systemd/systemd/blob/main/src/rpm/macros.systemd.in > > > > добавлены в Ñизиф, но разнеÑены по двум пакетам: rpm-build и > > > > rpm-build-systemd(rpm-macros-systemd) > > > > > > > > 1) Ð’ rpm-build раÑширен набор макроÑов Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð¸ÐµÐ¼ путей Ð´Ð»Ñ Ñ€Ð°Ð·Ð»Ð¸Ñ‡Ð½Ñ‹Ñ… > > > > компонентов systemd. > > > > http://git.altlinux.org/gears/r/rpm-build.git?p=rpm-build.git;a=commitdiff;h=01d2120325bd565dd69fab5473acdf7f13b3a322 > > > > По проÑьбе ldv@ макроÑÑ‹ имеют более короткие и читаемые имена > > > > (например вмеÑто %_systemdusergeneratordir иÑпользуетÑÑ > > > > %_user_gen_dir), но ÑовмеÑтимоÑÑ‚ÑŒ Ñ Ð°Ð¿Ñтримными макроÑами Ñохранена и > > > > их тоже можно иÑпользовать. > > > > > > > > 2) rpm-build-systemd виртуальный пакет Ñ Ð·Ð°Ð²Ð¸ÑимоÑÑ‚Ñми на > > > > rpm-macros-systemd, systemd-utils, libsystemd-devel (что бы > > > > уÑтанавливалиÑÑŒ pkgconfig(libsystemd) и pkgconfig(systemd)) > > > > Типовое иÑпользование: > > > > BuildRequires(pre): rpm-build-systemd > > > > или > > > > BuildRequires(pre): rpm-macros-systemd > > > > BuildRequires: rpm-build-systemd > > > > Ркогда Ñто нужно? > > Ðто нужно, когда Ñто нужно :) > Очевидно, что когда хочетÑÑ Ð²Ð¾ÑпользоватьÑÑ Ð¼Ð°ÐºÑ€Ð¾Ñами, или когда нужна > ÑÐ±Ð¾Ñ€Ð¾Ñ‡Ð½Ð°Ñ Ð·Ð°Ð²Ð¸ÑимоÑÑ‚ÑŒ на pkgconfig(systemd). > Или Ñ Ð½Ðµ понÑл в чем вопроÑ. > > > > > > > 3) Ð’ rpm-build-systemd добавлены макроÑÑ‹ Ð´Ð»Ñ Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð² разделах > > > > %post, %preun, %postun > > > > Ð’ /usr/lib/rpm/macros.d/systemd в комментариÑÑ… можно поÑмотреть > > > > варианты иÑпользованиÑ. > > > > > > > > - %post_systemd и %preun_systemd полноÑтью повторÑÑŽÑ‚ логику работы > > > > %post_service и %preun_service. Ðо в отличие от *_service им за раз > > > > можно указать неÑколько unit-файлов, systemd Ñам разберетÑÑ Ð² > > > > очередноÑти перезагрузки ÑервиÑов. > > > > Пример иÑпользованиÑ: > > > > ----------------- > > > > %post > > > > %post_systemd demo.socket demo.service demo1 > > > > > > > > %preun > > > > %preun_systemd demo.socket demo.service demo1 > > > > ----------------- > > > > И что делать тем, у кого в пакетах помимо service-файлов ещё и > > init-Ñкрипты? > > Ðичего не делать, продолжать жить дальше и иÑпользовать %post_service > и %preun_service. > Ðовые макроÑÑ‹ systemd-only, поÑтому они в пакете rpm-macros-systemd. > У Ð½Ð°Ñ ÑÐµÐ¹Ñ‡Ð°Ñ ÐµÑÑ‚ÑŒ довольно много пакетов, которые не предуÑматривают > работу под sysvinit. > Ðапример, ceph, в нем в принципе вÑе заточено Ð´Ð»Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ под systemd, > иÑпользуютÑÑ ÑŽÐ½Ð¸Ñ‚Ñ‹ вида ceph-osd@3.service, ceph-mon@server1.service. > И реÑтартовать ÑервиÑÑ‹ хотелоÑÑŒ бы в конце транзакции. > Или Ñ Ð¾Ð¿ÑÑ‚ÑŒ не понÑл в чем вопроÑ. > > Реализовывать отложенный реÑтарт ÑервиÑов под sysvinit нужно каким-то > другим ÑпоÑобом. > Ð¡ÐµÐ¹Ñ‡Ð°Ñ ÐºÐ°Ðº Ñто Ñделать, каждый пакет придумывает ÑамоÑтоÑтельно. СпаÑибо, Ñтало понÑтнее. > > > > > > [skip] > > > > > > Забыл, Ð¿Ð»ÑŽÑ ÐµÑ‰Ðµ паÑтримные макроÑÑ‹ %tmpfiles_create, %sysusers_create, > > > %sysusers_create_package, %tmpfiles_create_package, %sysctl_apply, > > > %binfmt_apply. > > > Что они делают и примеры тоже можно поÑмотреть > > > /usr/lib/rpm/macros.d/systemd, вроде ничего Ñложного, должно быть > > > понÑтно. > > > ЕÑли возникнут вопроÑÑ‹, обращайтеÑÑŒ. > > > > У Ð¼ÐµÐ½Ñ Ð²Ð¾Ð·Ð½Ð¸ÐºÐ»Ð¸ вопроÑÑ‹ к макроÑам, обозначенным в поÑледнем абзаце, > > точнее их необходимоÑти. УправлÑÑ‚ÑŒ tmpfiles вÑÑ‘-таки надо через > > tmpfiles.d, а изменÑÑ‚ÑŒ ÑоÑтоÑÐ½Ð¸Ñ sysctl и binfmt в результате уÑтановки, > > Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¸Ð»Ð¸ ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ Ð¿Ð°ÐºÐµÑ‚Ð¾Ð² мне видитÑÑ Ð½ÐµÐ¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ñ‹Ð¼. > > Ðе иÑпользуйте. Я вижу что вы макроÑÑ‹ не читали, но оÑуждаете. Как раз-таки читал и оÑуждаю. > Рмне вот нужна необходимоÑÑ‚ÑŒ упаковать что-то sysctl.d и применить до > реÑтарта ÑервиÑа, а не дожидатьÑÑ ÐºÐ¾Ð³Ð´Ð° отработает filetrigger или > Ñервер перезагрузитÑÑ. Вот как-раз таки такое поведение мне кажетÑÑ Ð½ÐµÐ¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ñ‹Ð¼. УÑтановка, обновление или удаление пакета Ñ ÑервиÑами не должно приводить к изменению конфигурации sysctl, Ñто зона ответÑтвенноÑти ÑиÑтемного админиÑтратора. ЕдинÑтвенный Ñлучай, при котором мне кажетÑÑ Ñто допуÑтимо, Ñто ÑервиÑÑ‹, перезагружающие Ð¼Ð¾Ð´ÑƒÐ»Ñ Ñдра Ñ Ð¿Ð¾Ñледующим применением (воÑÑтановлением, в данном Ñлучае) конфигурации sysctl-параметров, которые данный модуль предоÑтавлÑет (но Ñто вырожденный пример). Ðу, или ещё вариант, что Ñ Ð½Ð¸Ñ‡ÐµÐ³Ð¾ не понимаю в Ñовременных ЛинукÑах. -- WBR, Vladimir D. Seleznev