Срез от Penguinux
Привет всем гентушникам! С наступившим новым годом! Сайт "Penguinux" предлагает вашему вниманию срезы для Gentoo. Мы делаем полный и урезанный срез в конце каждого месяца. В урезанный срез входят последние стабильные и тестовые версии файлов. Получается где-то около 6-7 dvd.
Каждый месяц срез обновляется примерно на 4G, регулярно его перезаказывать просто неудобно. Поэтому мы делаем dvd с обновлениями за месяц.
На сайте также выкладывается список добавленных в течение текущего месяца пакетов. Обновляется он каждые 1-2 дня.
Здесь же выкладываются обнаруженные ошибки в дереве портежей (ошибки имен файлов, размеров, контрольных сумм).
Для работы со срезом идет разработка проекта depack. С его помощью можно определить файлы, необходимые для установки пакета, их наличие в системе и носители (диски, флешки...), на которых эти файлы находятся. Как это выглядит можно посмотреть здесь.
Наш сайт penguinux.ru.
- Для комментирования войдите или зарегистрируйтесь

Незнаю, как на
Незнаю, как на счет магазина, но лично меня заинтерисовал depack.
Накатал пока вот такой корявенький ебилд по мэйкфайлу.
# Copyright 1999-2008 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: /var/cvsroot/gentoo-x86/app-portage/depack/depack-0.78.ebuil,v 0.01 2008/01/05 00:48:43 Mellon Exp $ DESCRIPTION="DEpendencies PACKage" HOMEPAGE="http://www.penguinux.ru/pr_Depack.php" SRC_URI="http://penguinux.ru/projects/Depack/depack-0.78.tar.bz2" LICENSE="GPL-2" SLOT="0" KEYWORDS="~amd64 ~ia64 ~ppc ~ppc-macos ~ppc64 ~x86" IUSE="" RESTRICT="mirror" RDEPEND="dev-lang/python app-i18n/enca" S="${WORKDIR}/${PN}" src_unpack() { CHARSET="$(echo ${LANG} | sed s/"^.*\."//)" unpack ${A} cd ${S} find src/ -maxdepth 1 -type f -exec enconv -L ru -x ${CHARSET} {} \; || die } src_compile() { echo einfo "Nothing to compile." echo } src_install() { insinto /usr/share/depack doins src/colorlib.py \ src/colorlib.pyc \ src/toolib.py \ src/toolib.pyc \ src/verlib.py \ src/verlib.pyc || die insinto /usr/share/depack/locale for x in src/locale/* do doins ${x} || die done insinto /etc/depack doins src/config || die dobin src/depack || die dodir /var/depack/base || die dodoc AUTHOR COPYING || die }корявость заключается в неправильном складировании питоновских скриптов:
Пока не проверял, работает ли сама программка, и как именно она работает (утром постараюсь разобраться)
Было бы не
Было бы не плохо "прикрутить" возможность совместной работы с app-portage/getdelta :)
В смысле
В смысле как "прикрутить"? Можно, например, чтобы на выходе появлялись команды для скачки. Это оно?
getdelt'а перед
getdelt'а перед попыткой скачать delt'у проверяет наличие предыдущих версий sources. Вот и было бы неплохо, чтобы getdelta искала их и в базе, созданной скриптом.
Т. е. скрипт проверяет наличие в /etc/make.conf опции
FETCHCOMMAND="/usr/bin/getdelta.sh \${URI}"и, при её наличии и при отсутствии нужных исходников на локальных носителях, предлагает возможные версии исходников из своей базы.Смысл уловил
Похоже смысл уловил. Придется все равно поразбираться в скрипте /usr/bin/getdelta.sh. Попытаюсь что-нибудь сообразить.
Доработал
Доработал ебилдик до более-менее стандартного варианта.
# Copyright 1999-2008 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: /var/cvsroot/gentoo-x86/app-portage/depack/depack-0.78.ebuil,v 1.00 2008/01/04 23:59:43 Mellon Exp $ inherit python DESCRIPTION="DEpendencies PACKage" HOMEPAGE="http://www.penguinux.ru/pr_Depack.php" SRC_URI="http://penguinux.ru/projects/Depack/${P}.tar.bz2" LICENSE="GPL-2" SLOT="0" KEYWORDS="~amd64 ~ia64 ~ppc ~ppc-macos ~ppc64 ~x86" IUSE="" RESTRICT="mirror" DEPEND="sys-libs/glibc" RDEPEND="dev-lang/python >sys-apps/portage-2.1.2" S="${WORKDIR}/${PN}" convert_files() { CHARSET="$(echo ${LANG} | sed s/'^.*\.'//)" if [[ "x${CHARSET}" != "xKOI8-R" ]]; then for x in src/*.py src/config src/depack do iconv -f KOI8-R -t ${CHARSET} ${x} > ${x}.out || die mv ${x}.out ${x} || die done fi } src_unpack() { unpack ${A} cd ${S} convert_files } src_compile() { echo einfo "Nothing to compile." echo } src_install() { insinto /usr/share/depack for x in src/*.py do doins ${x} || die done insinto /usr/share/depack/locale for x in src/locale/* do doins ${x} || die done insinto /etc/depack doins src/config || die dobin src/depack || die dodir /var/depack/base || die dodoc AUTHOR COPYING || die } pkg_postinst() { python_mod_optimize "${ROOT}"/usr/share/${PN} } pkg_postrm() { python_mod_cleanup "${ROOT}"/usr/share/${PN} }:)
Проверил
Проверил ebuild, все работает. Спасибо, Шаманыш!
Хотелось бы
Хотелось бы иметь определение путей
path_keywords
path_mask
path_use
через конфиг и командную строку, так как структура /etc/portage/package.* может сильно варьировать и отличаться от дефолтной.
Конкретно, это можно реализовать следующим образом. Возьмем для примера path_keywords.
a) Смотрим конфиг, если в нем определен path_keywords, то он должен буть определён как путь относительный к /etc/portage/package.keywords/, например, enlightenment/snapshot
b) Смотрим параметры командной строки, если в нем определен path_keywords, то он должен буть определён как путь относительный к /etc/portage/package.keywords/, например, enlightenment/cvs
c) Нигде не определено. Смотрим /etc/portage/package.keywords, если файл, то оставляем, иначе назначаем /etc/portage/package.keywords/common.
То есть, на bash это может выглядить примерно так:
path_keywords="" source /etc/depack/config if [[ "x${path_keywords}" != "x" ]] ; then path_keywords="/etc/portage/package.keywords/${path_keywords}" fi until [ -z "$1" ]; do if [ "$1" == "--path-keywords" ]; then path_keywords="/etc/portage/package.keywords/$2" shift fi shift done : ${path_keywords="/etc/portage/package.keywords"} [[ -d ${path_keywords} ]] && export path_keywords="${path_keywords}/common":)
Почему берем относительный путь
Не могу понять почему берем относительный путь. Можно по-умолчанию в config'е прописать абсолютный, а те кому нужно уже подправят на свой.
потому, как
потому, как удобней и единообразней получится. По аналогии с layman.
Например, писать в командной строке только нужный файл "--path-keywords xeffects", или раздел и файл "--path-keywords games/fps" более удобно чем прописывать полный путь. И в конфиге, тоже самое.
:)
Извиняюсь, что долго отсутствовал
Извиняюсь, что долго отсутствовал - был на сессии. Постараюсь завтра сделать следующую версию depack.
Новая версия depack
Только что выложил depack на Penguinux.ru. Добавил ключи для путей к файлам /etc/portage/package.*.
Использовать так:
-U (--path_use) "путь" - путь задается относительно /etc/portage/package.use. Переменная PATH_USE в config содержит (если нужно) глобальный путь.
-K (--path_keyw) - путь задается относительно /etc/portage/package.keywords. Переменная PATH_KEYWORDS в config содержит (если нужно) глобальный путь.
-H (--path_mask) - путь задается относительно /etc/portage/package.mask. Переменная PATH_MASK в config содержит (если нужно) глобальный путь.
По умолчанию пути определены так:
/etc/portage/package.mask
/etc/portage/package.keywords
/etc/portage/package.use
Добавил привязку к getdelta. Работает следующим образом:
В качестве параметра depack передается пакет с ключом -g (--getdelta). Depack проверит наличие файлов в системе и на носителях и закажет патчи только на те файлы, которых нет. Пример:
#depack -g audacity
Также исправил различные мелкие ошибки. Чуть позже добавлю man-страницу.
Отлично,
Отлично, спасибо
:)