From: Alexey Rusakov <ktirf@altlinux.ru>
To: devel@lists.altlinux.org
Subject: Re: [devel] Установка *.schemes
Date: Sat, 1 Mar 2008 15:02:54 +0300
Message-ID: <20080301150254.2e427025@mission> (raw)
In-Reply-To: <47C93707.7010907@rambler.ru>
On Sat, 01 Mar 2008 13:59:19 +0300
Yury Aliaev wrote:
> Я занимаюсь исправлением пакета gnucash. У него есть некоторое
> количество файлов типа /etc/gconf/schemas/*gnucash*.schemas, которые не
> устанавливаются корректным образом. В его багзилле предлагают после
> установки программы от рута сказать "for ff in
> /usr/share/gconf/schemas/*gnucash* ; do gconftool-2
> --config-source=xml::/etc/gconf/gconf.xml.defaults --install-schema-file
> $ff ;
> done
> pkill gconfd"
>
> (И, действительно, после этого всё начинает работать)
Всё правильно, но у нас это забрано в скрипты-макросы.
> Это можно, конечно, вынести, в %post секцию спека, чтобы эти действия
> выполнялись при установке пакета. Но вроде как у нас достаточно добавить
> в спек следующее:
>
> %post
> %gconf2_install %name
>
> %preun
> if [ $1 = 0 ]; then
> %gconf2_uninstall %name
> fi
Почти правда. С одной оговоркой, ниже.
> Так вот, если сделать так, то при установке пакета вылезает следующее:
>
> [root@testing i586]# rpm -ivh gnucash-2.2.3-alt2.i586.rpm
> libgnucash-2.2.3-alt2.i586.rpm
> Preparing...
> #################################################################################
> libgnucash
> #################################################################################
> gnucash
> #################################################################################
> I/O warning : failed to load external entity
> "/etc/gconf/schemas/gnucash.schemas"
> Failed to open `/etc/gconf/schemas/gnucash.schemas': No such file or
> directory
> error: execution of %post scriptlet from gnucash-2.2.3-alt2 failed, exit
> status 1
>
> Вопрос: что должен содержать файл /etc/gconf/schemas/gnucash.schemas
> (которого действительно нет),
Если кратко и лень читать то, что ниже - посмотрите, как на самом деле
называется файл со схемой
> или всё же следует поступать так, как написано в багзилле гнукэша?
Не следует.
Я немного с другой стороны пойду, но зато укажу точный алгоритм, по
которому нужно идти в таких случаях. Даже странно, на fs.i его до сих пор
нет... Я хотел это вообще в какие-нибудь хитрые макросы завернуть, которые
бы сами генерили нужные %post/%postun скрипты, но в итоге дело кончилось
ничем...
Короче говоря:
1. Собираем пакет и находим все файлы вида
/etc/gconf/schemas/<название cхемы>.schemas.
2. (опционально) Раскладываем эти файлы по подпакетам так, как нам
нравится.
3. Для каждого из этих файлов пишем (в подходящем подпакете, если он в
подпакете) упоминавшуюся связку:
%post
%gconf2_install <название схемы>
%preun
if [ $1 = 0 ]; then
%gconf2_uninstall <название схемы>
fi
Обратите внимание,что указывать нужно не %name, а <название схемы> -
нередко оно совпадает с %name, но не всегда.
По теме подпакетов добавлю, что файлы schemas редко попадают в lib-пакеты
(хотя и такое бывает); как правило, они относятся всё же к конкретным
программам.
Для примера можете обратиться к пакету seahorse. Обратите внимание, что
там _две_ схемы, а не одна, и они лежат в разных подпакетах.
--
Alexey "Ktirf" Rusakov
Head of System development dept.
ALT Linux Ltd.
next prev parent reply other threads:[~2008-03-01 12:02 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-03-01 10:59 Yury Aliaev
2008-03-01 12:02 ` Alexey Rusakov [this message]
2008-03-03 9:06 ` Yury Aliaev
2008-03-03 15:28 ` Alexey Rusakov
2008-03-03 18:03 ` Yury Aliaev
2008-03-03 18:21 ` Alexey Rusakov
2008-03-04 10:10 ` Yury Aliaev
2008-03-05 17:09 ` Yury Aliaev
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20080301150254.2e427025@mission \
--to=ktirf@altlinux.ru \
--cc=devel@lists.altlinux.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
ALT Linux Team development discussions
This inbox may be cloned and mirrored by anyone:
git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
public-inbox-index devel
Example config snippet for mirrors.
Newsgroup available over NNTP:
nntp://lore.altlinux.org/org.altlinux.lists.devel
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git