Привет всем гентушникам! С наступившим новым годом! Сайт "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 :)
Я ♥ Gentoo & Funtoo
В смысле
В смысле как "прикрутить"? Можно, например, чтобы на выходе появлялись команды для скачки. Это оно?
Penguinux.ru
getdelt'а перед
getdelt'а перед попыткой скачать delt'у проверяет наличие предыдущих версий sources. Вот и было бы неплохо, чтобы getdelta искала их и в базе, созданной скриптом.
Т. е. скрипт проверяет наличие в /etc/make.conf опции
FETCHCOMMAND="/usr/bin/getdelta.sh \${URI}"и, при её наличии и при отсутствии нужных исходников на локальных носителях, предлагает возможные версии исходников из своей базы.Я ♥ Gentoo & Funtoo
Смысл уловил
Похоже смысл уловил. Придется все равно поразбираться в скрипте /usr/bin/getdelta.sh. Попытаюсь что-нибудь сообразить.
Penguinux.ru
Доработал
Доработал ебилдик до более-менее стандартного варианта.
# 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, все работает. Спасибо, Шаманыш!
Penguinux.ru
Хотелось бы
Хотелось бы иметь определение путей
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'е прописать абсолютный, а те кому нужно уже подправят на свой.
Penguinux.ru
потому, как
потому, как удобней и единообразней получится. По аналогии с layman.
Например, писать в командной строке только нужный файл "--path-keywords xeffects", или раздел и файл "--path-keywords games/fps" более удобно чем прописывать полный путь. И в конфиге, тоже самое.
:)
:)
Извиняюсь, что долго отсутствовал
Извиняюсь, что долго отсутствовал - был на сессии. Постараюсь завтра сделать следующую версию depack.
Penguinux.ru
Новая версия 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-страницу.
Penguinux.ru
Отлично,
Отлично, спасибо
:)
:)