ALT Linux Team development discussions
 help / color / mirror / Atom feed
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 --]

  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