From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on sa.local.altlinux.org X-Spam-Level: X-Spam-Status: No, score=-2.9 required=5.0 tests=ALL_TRUSTED,BAYES_00 autolearn=unavailable autolearn_force=no version=3.4.1 To: devel@lists.altlinux.org References: <20180725150825.GA26152@gyle.altlinux.org> <0c923f97-3e8e-9df5-abe7-323a648b660b@altlinux.org> <20180726095325.GB6504@altlinux.org> From: Aleksei Nikiforov Message-ID: <3f7d509c-4dbf-0422-fcf4-26696ba4a745@altlinux.org> Date: Thu, 2 Aug 2018 11:38:15 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.9.0 MIME-Version: 1.0 In-Reply-To: <20180726095325.GB6504@altlinux.org> Content-Type: text/plain; charset=koi8-r; format=flowed Content-Language: ru Content-Transfer-Encoding: 8bit Subject: Re: [devel] [#210757] EPERM (try 3) bash3.git=3.2.57-alt4 bash.git=4.4.23-alt1 bash-completion.git=2.8-alt1 X-BeenThere: devel@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: ALT Linux Team development discussions List-Id: ALT Linux Team development discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 02 Aug 2018 08:38:20 -0000 Archived-At: List-Archive: List-Post: Здравствуйте. 26.07.2018 12:53, Dmitry V. Levin пишет: > On Wed, Jul 25, 2018 at 06:21:46PM +0300, Aleksei Nikiforov wrote: >> Здравствуйте. >> >> Сделал новую тестовую сборку bash-4, в этот раз также с отдельным bash-3 >> и свежим bash-completion. Прошу заинтересованных потестировать. > > Спасибо. Ввиду того, что у нас bash-5 не за горами, может быть, упаковать > bash-4 как bash4 (с подпакетами sh4, bash4, bash4-devel, bash4-doc, > bash4-examples), и, по аналогии с gcc-defaults, сделать bash-defaults > c подпакетами sh, bash, bash-devel, bash-doc, bash-examples, > содержащие общие файлы (такие как bashrc) и переключающие bash > на нужную версию? > Я попробовал собрать bash3 и bash4 таким образом, с отдельными пакетами sh и bash с симлинками и зависимостями на последнюю версию sh4 и bash4 соответственно. Проблема при такой сборке возникает с плагинами bash. Сейчас плагины для bash3 лежат в /usr/lib/bash. Плагины bash4 лучше держать отдельно - их больше по сравнению с bash3, да и совместимость не гарантированна. То, что собранный для bash3 пакет bash-builtin-lockf работает с bash4 скорее стоит считать удачей и не рассчитывать на такое поведение, особенно при обновлении до следующих версий bash. В связи со всем вышесказанным, для плагинов bash4 нужна отдельная директория. Если для совместимости с текущим сетапом использовать /usr/lib/bash для плагинов bash3, то плагины bash4 можно положить в /usr/lib/bash4, например. Но тогда в некоторых пакетах для переезда на bash4 прийдётся явно менять захардкоженный путь до /usr/lib/bash/lockf, либо скриптовать поведение по поиску пути до lockf в зависимости от версии bash, а если lockf для bash4 будет в отдельном пакете - ещё и менять зависимости. Например, такой путь захардкожен в girar, hasher, gnupg2. Для такого сетапа сделано тестовое задание #210913 (но указанные пакеты ещё не обновлены). Если же попытаться использовать директорию /usr/lib/bash3 для плагинов bash3, /usr/lib/bash4 - для bash4, и сделать symlink /usr/lib/bash для текущей версии, то такому сетапу помешает rpm - нет прямого способа заменить директорию на symlink, т.е. прямая миграция невозможна. Есть незавершённое тестовое задание #210931 с таким сетапом. Если же в /usr/lib/bash держать плагины для текущей версии bash, а для bash3 их пересобрать в /usr/lib/bash3, то такой сетап уже есть в тестовом задании #210757. Разве что нет симлинков sh -> sh4, bash -> bash4, и можно дособрать lockf для bash3 в /usr/lib/bash3, но актуальность всех этих действий в таком случае под вопросом, особенно необходимости таких симлинков. И не нужно при апгрейде bash пересобирать дополнительные пакеты лишь для смены захардкоженного пути и зависимостей. Какие есть идеи по поводу данной проблемы? С уважением, Алексей Никифоров