From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Tue, 27 Mar 2018 20:30:36 +0300 (MSK) From: Ivan Zakharyaschev To: ALT Linux Team development discussions In-Reply-To: <451596a9-1fb1-25a0-91d6-6a5d1551329a@basealt.ru> Message-ID: References: <451596a9-1fb1-25a0-91d6-6a5d1551329a@basealt.ru> User-Agent: Alpine 2.20 (LFD 67 2015-01-07) MIME-Version: 1.0 Content-Type: multipart/mixed; BOUNDARY="1807885841-768409571-1522171836=:3361" Subject: Re: [devel] =?koi8-r?b?7c/E1czJIHB5dGhvbjM=?= 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: Tue, 27 Mar 2018 17:30:37 -0000 Archived-At: List-Archive: List-Post: This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. --1807885841-768409571-1522171836=:3361 Content-Type: text/plain; charset=koi8-r; format=flowed Content-Transfer-Encoding: 8BIT Hello! On Tue, 27 Mar 2018, Aleksei Nikiforov wrote: > Я пытаюсь разобраться с обновлением python3 до версии 3.6.x и возник вопрос: > почему архитектурно-зависимые модули python3 в основном лежат в > % _libdir/python3 вместо %_libdir/python3.5? Если бы модули лежали в > % _libdir/python3.5, то рядом в %_libdir/python3.6 можно было бы положить > модули для python-3.6.x, а в будущем и для 3.7.x, а сейчас обновление > python-3 невозможно без одномоментной пересборки всего содержимого > %_libdir/python3 c новой версией python3. Не совсем так. Только бинарных модулей. Во-первых, из-за стремления к политике поддерживать только один вариант в Сизифе. С этим все согласились и при последней пересборке с python 3.5. Во-вторых, технически это тогда должно было бы реализовываться по-другому. Если noarch-пакеты общие, как сейчас, т.е. подходят для использования любой версией python3, то механизм Requires+Provides в rpm не позволяет выразить нужные условия работоспособности. Например: модуль a импортирует noarch-модуль b, b импортирует c. a и с -- бинарные. Тогда когда импортируется a для python 3.6, должен импортироваться b, а потом c для python 3.6 тоже. И так же для python 3.5. Соответсвующий Requires в пакете с модулем b невозможно написать. Раз так не получается, остаётся только сборка каждого модуля для каждой версии питона, т.е. все-все-все модули в Сизифе надо будет собрать ещё раз. Ну и этого может не хотеться, например, потому что слишком долгий процесс, если делать вручную. Теоретически, конечно, всякие варианты возможно, но у нас сейчас такой выбран. Вероятно, в Debian по-другому. В Сизифе тоже были предусмотрены такие механизмы для размножения модулей, остались атавизмы в виде всяких %python_setup_module, которые сейчас не очень полезны. (И этого уже нет для Python 3.) -- Best regards, Ivan --1807885841-768409571-1522171836=:3361--