ALT Linux Team development discussions
 help / color / mirror / Atom feed
From: Kirill Maslinsky <kirill@altlinux.org>
To: ALT Linux Team development discussions <devel@lists.altlinux.org>
Subject: Re: [devel] texlive /usr/bin/latex dependencies
Date: Sun, 28 Jun 2009 19:59:52 +0400
Message-ID: <20090628155952.GC6637@odnako> (raw)
In-Reply-To: <20090625183103.781b79b7@bga>

[-- Attachment #1: Type: text/plain, Size: 5887 bytes --]

On Thu, Jun 25, 2009 at 06:31:03PM +0400, Grigory Batalov wrote:
> On Sun, 21 Jun 2009 16:49:00 +0400
> Alexey Tourbin wrote:
> 
> > И ещё желательно озвучить несколько примеров неудачных зависимостей
> > между texlive пакетами.  Чтобы понять расклад, где там что вылезает.

[...]

> Можно поступить следующим образом:
> - переразбить микро-пакеты на коллекции, избежав циклических зависимостей;
> - заблокировать некоторые зависимости (например, условные) директивами
>   %add_texmf_req_skip latex/<модуль> и %add_findreq_skiplist <файл>,
>   чтобы разорвать цикл.

Я считаю, что нужно обойтись без блокирования зависимостей, иначе
обессмысливается вся эта деятельность по автопоиску. Задача этой системы
-- обеспечить, чтобы в целостной системе при компиляции латех-документа
не возникало сообщений о недостающих стилях (кроме немногих исключительных
случаев). 

Предлагаю следующие шаги:

1. Немного ослабить логику поиска зависимостей. См.:

commit 63b8c437025fb1108fa6e71fd12a9822675563d4
Author: Kirill Maslinsky <kirill@altlinux.org>
Date:   Fri Jun 26 13:33:41 2009 +0400

    texmf.req: skip conditionally loaded packages
    
            Conditional loads are detected with simple heuristic:
    
            if package code contains stadard LaTeX check for existance
            of certain file, and LaTeX package with corresponding name
            is requested somewhere in the code, this package is supposed
            to be loaded conditionally (or else why to check for
            existence?). This heuristic won't handle obfuscated code
            where macro parameter is used instead of plain package file
            name, but is considered to be a good approximation for the
            typical case.
    
            On the main part of texlive tree this change eliminates about
            3% of all generated latex dependencies (100 out of 3000).

Такой метод не обнаружит условных конструкций другого типа, например, если
зависимый пакет загружается только при указании определённой опции. 
Однако это правильно, т.к. в общем случае мы не знаем, с какими опциями
пакет обязан быть рабочим, а с какими не обязан, поэтому исходим из того,
что зависимостей должно хватать при любом наборе опций.

Предложенный способ как раз ислючает только те зависимости, без которых
компиляция гарантированно не остановится на отсутствующем пакете.

А главное, он позволяет избавиться от зависимости texlive-latex-base на 
latex2html! и некоторых других столь же излишних зависимостей.

т.е. нужна пересборка с rpm-build-texmf-0.3.4-alt1 (см. пока у меня в git, 
отправил на сборку)

2. Перенести часть пакетов(texlive) в другие коллекции. 

Я сразу написал в формате tpm2deb

# 1ая итерация: чистка base
# eliminating texlive-latex-base->texlive-latex-extra dep
# весь ltxmisc убирать из collection-base боязно, т.к. стили оттуда
# могут использоваться. но именно файлы из этого пакета порождают кучу
# левых зависимостей.
move;ltxmisc;collection-latexrecommended
# есть большое желание спихнуть hyperref в collection-latexrecommended, вместе с его 
# безусловными зависимостями. При всём моём уважении к этому пакету...
# Интересно, сколько пакетов могут использовать его для сборки документации?
# Но если hyperref оставить в base, то надо туда же тащить memoir, oberdiek
# и может быть что-то ещё. Мне кажется, base должен быть более консервативным.
move;hyperref;collection-latexrecommended
# eliminating texlive-latex-base->texlive-extra-utils dep
# пакет oberdiek почему-то попал в extra-utils, его место в recommended
move;oberdiek;collection-latexrecommended

# тут для справки привожу список отдельных файлов из ltxmisc, порождающих
# нежелательные зависимости
# some packages from ltxmisc collection are not so misc:
#move-file;texmf-dist/tex/latex/ltxmisc/abstbook.cls;collection-latexextra
#move-file;texmf-dist/tex/latex/ltxmisc/subfigmat.sty;collection-mathextra
#move-file;texmf-dist/tex/latex/ltxmisc/concrete.sty;collection-fontsextra
#move-file;texmf-dist/tex/latex/ltxmisc/a4wide.sty;collection-latex-recommended
#move-file;texmf-dist/tex/latex/ltxmisc/vertbars.sty;collection-humanities


#### texlive-latex-recommended
#move;ifxetex;collection-latexrecommended
# powerdot требует pstricks и extra
# не вынести ли его в отдельный пакет (texlive-latex-extraextra)


## 2ая итерация: чистка recommended
move;minitoc;collection-latexrecommended
move;powerdot;collection-latexextra
move;subfigure;collection-latexrecommended
# let recommended depend on mathextra (10mb+)
move;beton;collection-mathextra
move;euler;collection-mathextra
# eliminating texlive-latex-recommended->texlive-humanities dep
move;lineno;collection-latexrecommended
# footmisc нужно перенести поближе из extra, он слишком многим нужен
move;footmisc;collection-latexrecommended

# eliminating texlive-lang-cyrillic->texlive-latex-extra dep
move;lastpage;collection-latexrecommended
move;wrapfig;collection-latexrecommended

## 3я итерация, чистка от зависимостей на texlive-latex-extra
# eliminating texlive-humanities->texlive-latex-extra dep
move;ncctools;collection-latexrecommended
move;fmtcount;collection-latexrecommended
move;ipa;collection-humanities
move;numprint;collection-latexrecommended


# eliminating texlive-math-extra->texlive-latex-extra dep
move;filecontents;collection-latexrecommended

# elimination dep texlive-games->texlive-latex-extra
move;xifthen;collection-latexrecommended

# elimination dep texlive-pstricks->texlive-latex-extra
move;ifplatform;collection-latexrecommended

Надо пересобрать texlive с указанными перемещениями и проверить ещё раз, что нигде
не осталось нежелательных в свете трехуровневой схемы BASE/RECOMMENDED/EXTRA зависимостей. 
И не возникло ли новых по недосмотру. И можно будет выкладывать.

-- 
КМ

[-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --]

  reply	other threads:[~2009-06-28 15:59 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-06-21  7:13 Alexey Tourbin
2009-06-21  9:54 ` Grigory Batalov
2009-06-21 12:49   ` Alexey Tourbin
2009-06-25  9:23     ` Grigory Batalov
2009-06-25  9:33       ` Kirill A. Shutemov
2009-06-25  9:44         ` Grigory Batalov
2009-06-25  9:48       ` Grigory Batalov
2009-06-25 14:31     ` Grigory Batalov
2009-06-28 15:59       ` Kirill Maslinsky [this message]
2009-06-28 17:53         ` Led
2009-06-28 18:01           ` Kirill Maslinsky
2009-06-28 18:09             ` Led
2009-06-28 18:25               ` Kirill Maslinsky
2009-06-28 18:35                 ` Led
2009-06-28 18:56                   ` Kirill Maslinsky
2009-06-28 18:42                 ` Kirill Maslinsky
2009-06-29 11:30         ` Grigory Batalov
2009-06-29 11:57           ` Grigory Batalov
2009-06-29 12:28             ` Kirill Maslinsky
2009-06-29 12:37               ` Grigory Batalov
2009-06-29 13:12                 ` Kirill Maslinsky
2009-06-29 13:51                   ` Grigory Batalov
2009-06-30  6:06                     ` Kirill Maslinsky
2009-06-30  8:41                       ` Grigory Batalov
2009-06-30 13:24                       ` Grigory Batalov
2009-06-30 13:34                         ` Kirill Maslinsky
2009-06-29 12:52             ` Anton V. Boyarshinov
2009-06-29 13:02               ` Grigory Batalov
2009-07-01 14:27         ` Grigory Batalov
2009-07-01 14:34           ` Kirill Maslinsky
2009-07-02 11:49             ` Grigory Batalov
2009-07-02 20:16               ` Kirill Maslinsky
2009-07-02 20:24                 ` Grigory Batalov
2009-07-02 12:21         ` Grigory Batalov
2009-07-02 20:33           ` Kirill Maslinsky
2009-07-02 20:53             ` Grigory Batalov
2009-07-02 21:01               ` Kirill Maslinsky
2009-06-28 15:38     ` Kirill Maslinsky
2009-06-28 16:01       ` Kirill Maslinsky
2009-06-28 16:10       ` 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=20090628155952.GC6637@odnako \
    --to=kirill@altlinux.org \
    --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