[devel] I: sysvinit vs systemd

Dmitry V. Levin ldv на altlinux.org
Пт Дек 24 03:30:13 MSK 2021


On Fri, Dec 24, 2021 at 03:00:29AM +0300, Dmitry V. Levin wrote:
> On Fri, Dec 24, 2021 at 02:36:45AM +0300, Dmitry V. Levin wrote:
> > On Thu, Dec 23, 2021 at 06:53:56PM +0300, Alexey Shabalin wrote:
> > > чт, 23 дек. 2021 г. в 17:20, Dmitry V. Levin <ldv на altlinux.org>:
> > > > > Дима предложил порядок действий:
> > > > >
> > > > > + В startup ссылки /etc/modules и /etc/sysctl.conf заменяются на
> > > > > зависимости.
> > > > >
> > > > > + Из systemd ссылка /etc/modules-load.d/modules.conf заменяется на
> > > > > зависимость.
> > > > >
> > > > > + В systemd-sysctl-common ссылка /etc/sysctl.d/99-sysctl.conf заменяется
> > > > > на файл и добавляется ссылка /etc/sysctl.conf.
> > > > >
> > > > > + В новом systemd-modules-common добавляется файл
> > > > > /etc/modules-load.d/modules.conf и ссылка /etc/modules на него.
> > > > >
> > > > > + В обоих -common добавляются %pre, которые перемещают заменяемые файлы на
> > > > > новые места.
> > > > >
> > > > > После этого startup перестанет появляться на системах с systemd и
> > > > > вытягивать ненужные зависимости.
> > > >
> > > > Чтобы не было разночтений, я ожидаю, что мантейнер пакета systemd всё это
> > > > исправит.  Если он по той или иной причине не сможет, я буду искать того,
> > > > кто сможет.
> > > 
> > > Тоже внесу ясность. Я жду от мантейнеров пакета startup предложенных
> > > изменений. Он первый в списке. От изменений в нем зависит все
> > > остальное.
> > 
> > $ rpmquery -Rp /ALT/Sisyphus/files/SRPMS/startup-0.9.9.13-alt1.src.rpm
> > rpmlib(PayloadIsLzma)  
> > $ rpmquery -Rp /ALT/Sisyphus/files/SRPMS/systemd-249.7-alt5.src.rpm |wc -l
> > 54
> > 
> > На всякий случай при таком раскладе лучше собирать пакет startup
> > последним подзаданием в сборочном задании.
> 
> https://git.altlinux.org/people/ldv/packages/?p=startup.git;a=tag;h=0.9.9.14-alt1
> - я проверил, что этот пакет собирается.

PoC, untested:

%pre -n systemd-modules-common
src=/etc/modules
dst=/etc/modules-load.d/modules.conf
tmp=$dst.rpmmove
rm -f $tmp
if [ -L $dst -a -s $src -a ! -L $src ]; then
	mkdir -p ${tmp%/*}
	mv $src $tmp
fi

%post -n systemd-modules-common
src=/etc/modules-load.d/modules.conf.rpmmove
dst=/etc/modules-load.d/modules.conf
tmp=$dst.rpmsave
if [ -s $src ]; then
	mv $dst $tmp
	mv $src $dst
	if cmp -s $dst $tmp; then
		rm -f $tmp
	fi
fi
	

-- 
ldv


Подробная информация о списке рассылки Devel