From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on sa.int.altlinux.org X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=AWL,BAYES_00, RCVD_IN_SORBS_WEB,SPF_PASS autolearn=no version=3.2.5 Date: Mon, 27 Feb 2012 20:13:16 +0200 From: Igor Vlasenko To: devel@lists.altlinux.org Message-ID: <20120227181316.GA8941@dad.imath.kiev.ua> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit User-Agent: Mutt/1.5.21 (2010-09-15) X-imath-kiev-ua-MailScanner-Information: Please contact the ISP for more information X-imath-kiev-ua-MailScanner-ID: 2CCFE4B04AC.AE471 X-imath-kiev-ua-MailScanner: Found to be clean X-imath-kiev-ua-MailScanner-From: vlasenko@imath.kiev.ua Cc: Vitaly Kuznetsov Subject: [devel] I: arepo: next steps 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: Mon, 27 Feb 2012 18:13:26 -0000 Archived-At: List-Archive: List-Post: Уважаемые коллеги, В общем, так понимаю, arepo стагнировал, а это вещь нужная. Решил, раз нет возражений, заняться arepo плотнее. Что уже сделано: подготовил патчи к arepo, добавляющие 1) поддержку репозиториев без noarch компоненты (по просьбе Сергея) 2) модульный конфиг-файл для arepo, c директивой "include: |" Отличие от прототипа в том, что поменял тип строки yaml c '>' на '|', т.е. есть возможность задать пути с пробелами внутри. include: | /home/vpupkin/Рабочий Стол/NX-client-arepo-t6.conf Повесил заявку http://bugzilla.altlinux.org/show_bug.cgi?id=26985 надеюсь, эти изменения скоро будут в Сизифе. Что хочу сделать: I. распрямить работу arepo с apt. arepo сейчас, чтобы узнать EPOCH-VERSION-RELEASE пакета NAME, создает aptbox и выполняет apt-get install --yes --print-uris NAME Если apt-get install завершился успешно, получаем путь к rpm файлу в локальной файловой системе, затем открываем полученный rpm файл с помощью python-rpm и извлекаем значения из RPM Header'а. Это и слишком медленный путь, и слишком глючный. Симптомы глюка: В t6 обновился libpng12. Ожидалось, что arepo пересоберет i586-libpng12. Однако arepo пересобрал не только i586-libpng12, но и около 30 других пакетов, именно все имевшиеся зависящие от i586-libpng12 пакеты, включая wine, поскольку из-за несоответствия версий libpng12 и i586-libpng12 они оказались не устанавливаемыми и apt-get install --yes --print-uris завершался для них неуспешно. Я хочу переделать этот кусок, чтобы напрямую брать данные из кеша apt. В результате и ускорится холостой пробег arepo, и больше не будет таких глюков, и появится возможность работать с сетевыми репозиториями. II. вырезать из arepo.py низкоуровневую работу с rpm в отдельный скрипт. Собственно arepo.py пусть и дальше занимается тем, чем и занимался, т.е. созданием и обновлением x86_32 репозитория, а отдельный скрипт araperpm, rpm2arepo или как его назвать.py будет заниматься конкретно созданием i586-name-V-R.src.rpm из name-V-R.i586.rpm. Это не повлияет на производительность, так как специфика питона - что любой скрипт легко выступает в роли библиотеки. И arepo будет просто загружать rpm2arepo.py как свою библиотеку. Это и существенно упростит отладку, и, главное, встраивать в сборочницу весь arepo смысла не имеет, сборочнице нужна только функциональность rpm2arepo.py. Все остальное - сборка пакетов и менеджмент репозиториев - в сборочнице уже есть, имеющаяся высокоуровневая часть arepo - это по сути дублирование скриптов сборчницы, но не полное, недостаточного качества и написанное на python. Мое предложение -- arepo надо разрезать на две части и встраивать в сборчницу сразу низкоуровневый скрипт конверсии rpm, условное название rpm2arepo.py. -- Dr. Igor Vlasenko -------------------- Topology Department Institute of Math Kiev, Ukraine