[devel] golang

Dmitry V. Levin ldv на altlinux.org
Сб Май 2 16:44:25 MSK 2020


On Sat, May 02, 2020 at 04:25:16PM +0300, Vladimir D. Seleznev wrote:
> On Sat, May 02, 2020 at 01:47:32PM +0300, Alexey V. Vissarionov wrote:
> > On 2020-05-01 23:15:08 +0300, Vladimir D. Seleznev wrote:
> > 
> >  >> Интересно, зачем пакету golang нужен libselinux-utils? (Смотрю в p9)
> >  > $ rpm -qRp /ALT/repo/p9/release/latest/x86_64/RPMS.classic/golang-1.12.17-alt1.x86_64.rpm |grep selinux
> >  > /usr/sbin/selinuxenabled
> >  > Это — автоматически сгенерированная зависимость,
> >  > получившаяся из-за этого скрипта, упакованного в пакет golang:
> >  > $ grep "/usr/sbin/selinuxenabled" /usr/lib64/golang/src/make.bash
> >  >	if [ -d $se_mount -a -f $se_mount/booleans/allow_execstack -a
> >  > -x /usr/sbin/selinuxenabled ] &
> >  >	/usr/sbin/selinuxenabled; then
> > 
> > И как такое отключать? Очевидно же, что нужды в libselinux-utils у сабжа
> > нет, несмотря на то, что сабж умеет с ним работать - потому что он умеет
> > работать и без него.
> > 
> > Нужен какой-то %requires_skip
> 
> Как уже раньше написали, можно использовать %filter_from_requires.
> 
> Для автосгенерированных шелл-зависимостей есть хак с написание перед
> командой фиктивной переменной окружения, однако учитывайте, что
> некоторые переменные окружения могут повлиять на выполнение программы:
> 
>  do
> -       if [ -d $se_mount -a -f $se_mount/booleans/allow_execstack -a -x /usr/sbin/selinuxenabled ] && /usr/sbin/selinuxenabled; then
> +       if [ -d $se_mount -a -f $se_mount/booleans/allow_execstack -a -x /usr/sbin/selinuxenabled ] && noreq= /usr/sbin/selinuxenabled; then
>                 if ! cat $se_mount/booleans/allow_execstack | grep -c '^1 1$' >> /dev/null ; then

Раньше или позже этот код перестанет работать правильно, потому что
местоположение /usr/sbin/selinuxenabled не вечно, а
хак с переменной в любой момент может оказаться исправленным.

Надёжнее будет работать следующий подход:

selinuxenabled=selinuxenabled
if [ -d $se_mount -a -f $se_mount/booleans/allow_execstack ] && type $selinuxenabled >/dev/null 2>&1 && $selinuxenabled; then


-- 
ldv


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