Bug 15219 - shell-quote collision
Summary: shell-quote collision
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: libshell (show other bugs)
Version: unstable
Hardware: all Linux
: P2 critical
Assignee: Dmitry V. Levin
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-04-02 15:43 MSD by Anton Farygin
Modified: 2008-11-21 19:06 MSK (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Anton Farygin 2008-04-02 15:43:48 MSD
Система - текущий Sisyphus.

$ /bin/sh -efux gear-update-tag -a -d
+ . gear-sh-functions
++ . shell-error
+++ '[' -z '' ']'
+++ __included_shell_error=1
+++ PROG=gear-update-tag
+++ quiet=
+++ verbose=
++ . shell-quote
+++ use strict

$ echo $PATH
/home/rider/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin:/usr/games:/usr/X11R6/bin

$ which shell-quote
/usr/bin/shell-quote

$ file /usr/bin/shell-quote
/usr/bin/shell-quote: perl script text executable

$ rpm -qf /usr/bin/shell-quote
perl-String-ShellQuote-1.03-alt1
Comment 1 Dmitry V. Levin 2008-04-02 15:46:58 MSD
(In reply to comment #0)
> $ echo $PATH
/home/rider/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin:/usr/games:/usr/X11R6/bin

Please fix your $PATH; just set it to
$HOME/bin:/bin:/usr/bin:/usr/local/bin
Comment 2 Anton Farygin 2008-04-02 15:52:35 MSD
Тогда надо перевесить на KDM ?
Comment 3 Sergey V Turchin 2008-04-02 15:54:47 MSD
(In reply to comment #1)
> /usr/bin:/usr/local/bin
А точно не наоборот?
Если не сложно, дайте ссылку, где написано об этом

Comment 4 Anton Farygin 2008-04-02 16:05:41 MSD
Насколько правильно существование двух скриптов в /bin и в /usr/bin с
одинаковыми именами и разной функциональностью ?
Comment 5 Alexey Gladkov 2008-04-02 17:05:08 MSD
(In reply to comment #4)
> Насколько правильно существование двух скриптов в /bin и в /usr/bin с
> одинаковыми именами и разной функциональностью ?

Это плохо, но что тут можно сделать непонятно.
Comment 6 Alexey Gladkov 2008-04-02 17:09:29 MSD
Неправильно, что эта бага висит на gear. Этот пакет использует libshell и не
виноват что присутствует дублирование имён.

Component => libshell
Severity => critical
Comment 7 Anton Farygin 2008-04-02 17:52:13 MSD
Если include делать по абсолютному пути, а не по PATH ?
Comment 8 Anton Farygin 2008-04-02 17:52:51 MSD
Кстати, как вариант - переименовать в libshell имя скрипта.
Comment 9 Alexey Gladkov 2008-04-02 18:06:12 MSD
(In reply to comment #8)
> Кстати, как вариант - переименовать в libshell имя скрипта.

Это не вариант (как первый, так и второй). Скрипт shell-quote давно создан и
используется в разных скрпитах. Причём эти скрипты могут быть не запакованы в
сизифе. libshell хоть находится в PATH, но имеет функции библиотеки.

Кроме того, это решение ведёт в никуда. Что ты предложешь когда появится утилита
пересекающаяся с новым названием?
Comment 10 Anton Farygin 2008-04-02 19:32:42 MSD
Хм, а можешь пояснить, какой сакральный смысл класть неисполняемую библиотеку в
/bin ?
# l /bin/shell-quote
-rw-r--r-- 1 root root 1081 Mar  9 23:01 /bin/shell-quote

Comment 11 Alexey Gladkov 2008-04-02 20:58:37 MSD
(In reply to comment #10)
> Хм, а можешь пояснить, какой сакральный смысл класть неисполняемую библиотеку в
> /bin ?

Этот подход достаточно стандартен. Эти делается для возможности подключения
этого файла без указания полного пути. Эти файлы находятся шеллом по стандартным
путям (в PATH). Они сделаны неисполняемыми чтобы табкомплишн не подхватывал их
при работе.

Этими приёмами пользуются git, hasher, gear и другие проекты написанные на
shell. Собственно, эта библиотека предназначена для таких проектов.
Comment 12 Dmitry V. Levin 2008-04-03 03:39:22 MSD
(In reply to comment #3)
> (In reply to comment #1)
> > /usr/bin:/usr/local/bin
> А точно не наоборот?
> Если не сложно, дайте ссылку, где написано об этом

Такой $PATH у нас практически везде по умолчанию,
см. хотя бы /etc/profile

Кстати, у меня возникло нехорошее подозрение на то,
что KDM не запускает /etc/X11/Xsession, из-за чего инициализация
на 3-м и 5-м runlevel'ах сильно отличается, что недопустимо.
Возможно что и $PATH в разных runlevel'ах получается разный, что тоже недопустимо.

Это может иметь очень неприятные последствия.
Comment 13 Dmitry V. Levin 2008-04-03 04:57:48 MSD
(In reply to comment #9)
> Кроме того, это решение ведёт в никуда. Что ты предложешь когда появится утилита
> пересекающаяся с новым названием?

Если коллизий не удастся избегать, будем ставить конфликты в пакетах.

Кстати, никто не помнит, зачем мне понадобилось собирать пакет
perl-String-ShellQuote более 2 лет назад?
Comment 14 Alexey Gladkov 2008-04-03 06:23:41 MSD
(In reply to comment #13)
> Если коллизий не удастся избегать, будем ставить конфликты в пакетах.

Конфликт наверное самое лучшее решение.

> Кстати, никто не помнит, зачем мне понадобилось собирать пакет
> perl-String-ShellQuote более 2 лет назад?

Я когда увидел кто собрал этот пакет глазам своим не поверил.
Comment 15 Dmitry V. Levin 2008-05-27 02:30:25 MSD
(In reply to comment #14)
> (In reply to comment #13)
> > Если коллизий не удастся избегать, будем ставить конфликты в пакетах.
> 
> Конфликт наверное самое лучшее решение.
> 
> > Кстати, никто не помнит, зачем мне понадобилось собирать пакет
> > perl-String-ShellQuote более 2 лет назад?
> 
> Я когда увидел кто собрал этот пакет глазам своим не поверил.

Ну так что будем делать?  Закапываем perl-String-ShellQuote?
Comment 16 Alexey Gladkov 2008-11-21 12:50:40 MSK
(In reply to comment #15)
> Ну так что будем делать?  Закапываем perl-String-ShellQuote?
 
Раз ты сам не помнишь, зачем этот пакет тебе, то тогда стоит закопать.
Comment 17 Dmitry V. Levin 2008-11-21 19:06:31 MSK
perl-String-ShellQuote в Сизифе больше нет.