From: Alexey Tourbin <at@altlinux.ru>
To: ALT Linux Team development discussions <devel@lists.altlinux.org>
Subject: Re: [devel] abstract TeX dependencies
Date: Thu, 19 Mar 2009 01:32:38 +0300
Message-ID: <20090318223238.GB26967@altlinux.org> (raw)
In-Reply-To: <20090318184403.GH24277@localhost.localdomain>
[-- Attachment #1: Type: text/plain, Size: 3435 bytes --]
On Wed, Mar 18, 2009 at 09:44:04PM +0300, Kirill Maslinsky wrote:
> > > Поясню: сложность там в том, что разным сторонним пакетам,
> > > предоставляющим стилевые файлы, шрифты и пр., нужно класть файлы
> > > в целый ряд подкаталогов /usr/share/texmf, согласно TDS.
> > > Все эти подкаталоги запакованы сейчас в tetex-core и в кучу
> > > texlive-пакетов. Чтобы выкинуть их из tetex, нужно его пересобрать.
> > > Чтобы выкинуть их из texlive-*, нужно его тоже пересобрать,
> > > но там списки файлов пакетов генерятся автоматически, списки надо
> > > аккуратно перегенерить, и там могут быть нюансы (тут bga@ лучше знает).
> > >
> > > В целом, я пока не уверен, что это вообще правильный путь -- переносить,
> > > по существу, все стандартные подкаталоги /usr/share/texmf в tex-common.
> > > Но других вариантов пока тоже не вижу.
> >
> > Я что-то потерял нить.
> > Зачем выносить все директории в общий пакет? Недавно же писали,
> > что одинаковые директории можно включать в несколько пакетов,
> > последний удаляемый заберёт их с собой.
>
> В том-то и дело, что если каталоги будут принадлежать сразу нескольким
> несвязанным пакетам (tetex, texlive, стили из сторонних пакетов), то
> каталоги там будут с одним и тем же именем, но не будут уже совпадать
> с точностью до mtime (так как эти каталоги взяты не из одного исходника).
> Правильно я понимаю, что эту ситуацию rpm уже будет рассматривать как
> конфликт?
Нет, конфликта не будет.
Код файлового конфликта в rpm менялся, актуальным следует считать вот этот код.
lib/transaction.c:
884 static int filecmp(const TFI_t fi1, const int ix1, const TFI_t fi2, const int ix2)
885 /*@*/
886 {
887 uint_16 m1 = fi1->fmodes[ix1], m2 = fi2->fmodes[ix2];
888 uint_32 f1 = fi1->fflags[ix1], f2 = fi2->fflags[ix2];
889 const char *u1 = fi1->fuser[ix1], *u2 = fi2->fuser[ix2];
890 const char *g1 = fi1->fgroup[ix1], *g2 = fi2->fgroup[ix2];
891
892 /* both file type and permissions must match */
893 if (m1 != m2)
894 return 1;
895
896 /* ownership must also match */
897 if (strcmp(u1, u2) || strcmp(g1, g2))
898 return 1;
899
900 if ((f1 | f2) & RPMFILE_GHOST)
901 /* one or both %ghost files, no extra check */
902 ;
903 else if (S_ISLNK(m1)) {
904 /* symlinks must have the same target */
905 const char *l1 = fi1->flinks[ix1], *l2 = fi2->flinks[ix2];
906 if (strcmp(l1, l2))
907 return 1;
908 }
909 else if (S_ISREG(m1)) {
910 /* regular files must have the same md5 sum */
911 const char *md51 = fi1->fmd5s[ix1], *md52 = fi2->fmd5s[ix2];
912 if (strcmp(md51, md52))
913 return 1;
914 }
915
916 /* e.g. mtime difference is immaterial */
917 return 0;
918 }
Но кроме файлового конфликта есть ещё rpmverify.
Уточнить поведение 'rpm -Vv' с ходу не берусь.
То есть получается что один каталог расшарен с разным mtime. Что не
фатально, но как бы немножко остается вопрос, какой mtime считать
правильным.
Впрочем, mtime каталога -- очень хрупкая вещь; mtime каталога
автоматически меняется, когда в каталоге создаются или удаляются файлы.
Проверять mtime каталога смысла очень мало.
[-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --]
next prev parent reply other threads:[~2009-03-18 22:32 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-03-17 9:57 Kirill Maslinsky
2009-03-17 12:29 ` Alexey Tourbin
2009-03-18 14:45 ` Michael Pozhidaev
2009-03-18 16:06 ` Kirill Maslinsky
2009-03-18 16:07 ` Mikhail Gusarov
2009-03-18 16:13 ` Kirill Maslinsky
2009-03-18 16:16 ` Mikhail Gusarov
2009-03-18 18:01 ` Grigory Batalov
2009-03-18 18:44 ` Kirill Maslinsky
2009-03-18 18:52 ` Igor Vlasenko
2009-03-18 21:15 ` Michael Pozhidaev
2009-03-18 22:50 ` Grigory Batalov
2009-03-24 18:07 ` [devel] rpm file conflicts Kirill Maslinsky
2009-03-24 19:27 ` Igor Vlasenko
2009-03-24 19:38 ` Kirill Maslinsky
2009-03-24 19:41 ` Artem Zolochevskiy
2009-03-24 19:53 ` Igor Vlasenko
2009-03-18 22:32 ` Alexey Tourbin [this message]
2009-03-19 0:16 ` [devel] abstract TeX dependencies Денис Смирнов
2009-03-18 22:18 ` Alexey Tourbin
2009-03-18 23:12 ` Michael Pozhidaev
2009-03-18 16:43 ` Kirill Maslinsky
2009-03-18 16:46 ` Mikhail Gusarov
2009-03-18 22:51 ` Alexey Tourbin
2009-03-24 16:37 ` [devel] grab all specfiles Alexey Tourbin
2009-03-24 19:23 ` Igor Vlasenko
2009-03-24 19:42 ` Kirill Maslinsky
2009-03-26 13:18 ` Michael Shigorin
2009-03-18 13:57 ` [devel] abstract TeX dependencies Alexander Borovsky
2009-03-18 15:15 ` Grigory Batalov
2009-03-18 15:59 ` Kirill Maslinsky
2009-03-18 16:00 ` Kirill Maslinsky
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=20090318223238.GB26967@altlinux.org \
--to=at@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