В Gentoo меня обычно все устраивает. Но иногда случается необходимость поставить какой либо редкий софт, или более новый софт. До сих пор мне удавалось обойтись без создания собственных установочных пакетов, но наступил день "Ч" =).
У меня есть принтер Canon Selphy CP520. На нем я благополучно печатал фотографии с фотоаппарата по проводу и мобильного телефона через Bluetooth. При этом я частенько печатал неудачные снимки, которые на экране телефона или камеры выглядят вполне достойными. В общем, пришло время подключить принтер к компьютеру и печатать только избранные кадры, да еще и подретушированные.
Поиски драйверов для Canon Selphy CP520 завели меня на сайт http://www.openprinting.org, где написано, что данный принтер поддерживается gutenprint версии 5.2.3 с добавленным патчем. Gutenprint нашелся в Gentoo без проблем, а вот необходимый патч, естественно, в поставку не входит =). Не беда. Засучиваем рукава и приступаем.
Постановка задачи.
Необходимо модифицировать существующий ebuild, нужной версии, чтобы при установке, до компиляции, на исходный код накладывался необходимый патч.
Дерево portage.
Так как при модификации существующего ebuild, при обновлении дерева portage, все мои изменения накроются, я добавил так называемый оверлейный portage. Т.е. создал второе, альтернативное дерево, которое существует паралельно официальному дереву.
В файле /etc/make.conf добавил строчку:
PORTDIR_OVERLAY="/usr/local/portage $PORTDIR_OVERLAY"
Создал соответствующий каталог /usr/local/portage, в котором создал каталог для категории ebuild-а net-print. После этого, как образец, я скопировал папку gutenprint из официального дерева в мое свеже созданое дерево portage и все дальнейшие действия делал не затрагивая основное дерево.
Модификация ebuild.
В новом каталоге /usr/local/portage/net-print/gutenprint я убрал не нужные ebuild-ы, а ebuild необходимой версии переименовал с добалвением в имя файла r1. Таким образом я сделал заготовку для своей версии пакета gutenprint.
Внутри каталога /usr/local/portage/net-print/gutenprint есть папка files. В эту папку я положил необходимый мне для пакета патч. Далее отредактивровал сам файл ebuild-а, добавив строку наложения патчей, по аналогии с уже имеющимися:
epatch "${FILESDIR}"/${P}-r1-cp520.patch
Т.к. файлы были модифицированы, они перестали совпадать с информацией из файла Manifest. Для обновления этого файла, необходимо выполнить команду:
#ebuild путь/к/файлу-ebuild digest
Результат.
После выполнения всех не хитрых действий, при установке программы, к исходным кодам пакета добавляется необходимый мне патч.
Установка прошла успешно, а вот печатает ли принтер, я пока не знаю, т.к. проверить это не успел. Основная цель - создание своего ebuild-а, выполнена =).
Подписаться на:
Комментарии к сообщению (Atom)
Комментариев нет:
Отправить комментарий