From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Message-ID: <428911D5.5040700@altlinux.org> Date: Tue, 17 May 2005 01:34:13 +0400 From: Mikhail Yakshin User-Agent: Mozilla Thunderbird 1.0 (X11/20050202) X-Accept-Language: ru-ru, ru MIME-Version: 1.0 To: ALT Devel discussion list X-Enigmail-Version: 0.90.2.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=KOI8-R Content-Transfer-Encoding: 8bit Subject: [devel] Library + Python bindings build X-BeenThere: devel@altlinux.ru X-Mailman-Version: 2.1.5 Precedence: list Reply-To: ALT Devel discussion list List-Id: ALT Devel discussion list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 May 2005 21:34:39 -0000 Archived-At: List-Archive: List-Post: Приветствую! Есть такая задачка: есть новый libtunepimp, который нужно по хорошему разделить на 2 пакета: 1. Собственно libtunepimp - это бинарно-собираемая библиотека на C/C++, собирается средствами autoconf/automake/libtool и ставится относительно безпроблемно; 2. В поддиректории python у исходного тарболла есть по сути совершенно отдельный пакет, собирающийся в принципе абсолютно отдельно от исходного и представляющего собой стандартный питоновский модуль (биндинги к этой C-шной библиотеке посредством ctypes), который бы хотелось оформить в отдельный пакет python-module-tunepimp и к которому хотелось бы иметь спек в виде простой и понятной почти копии со стандартного спека из Python Policy. Вариантов решения я пока вижу 2, и оба они мне не нравятся, но я склоняюсь ко второму, несмотря на некий оверхед для Сизифа: 1. Сделать %package python в libtunepimp, получив таким образом libtunepimp-python и решив какими-то полукустарными методами проблемы билда и инсталла такого пакета, запихнув какие-то особо хитрые конструкции в %build и %install основного пакета libtunepimp. Минусы: нарушаем по сути Python policy, обретаем массу (по крайней мере потенциальных) проблем с обновлениями и корректными зависимостями на попиленный Питон. Плюсы: компактно, все-таки более-менее штатный способ построения всего из одного тарболла. 2. Запаковать отдельно пакет libtunepimp (порождающий 3 вполне понятных пакета - libtunepimp, libtunepimp-devel и libtunepimp-utils) и оставить его таким. Запаковать тот же самый тарболл отдельно, после чего сделать ему нормальный спек нормального питонного пакета, соответствующий полиси и примеру спека, с единственной разницей в %setup вроде: %setup -q -n %name-%version-pre4/python вместо обычного %setup -q, скажем. Минусы: пакуем один не очень маленький (~850 кил) тарболл два раза, во втором случае из всего 850-килобайтного тарболла нам нужны десять килобайт одного маленького питонного враппера над этой самой либой; Плюсы: проще, больше соответствует policy. Посоветуйте, как быть?.. Есть еще метод 3, но он мне совсем не нравится: плюнуть на все полиси, setup.py и любые подобия мейкфайлов как таковые и просто поставить этот несчастный .py файл ручками в директорию, куда надо. Еще более quick-n-dirty, но проще всего... -- WBR, Mikhail Yakshin AKA GreyCat ALT Linux [http://www.altlinux.ru] [xmpp:greycat@altlinux.org]