ALT Linux Team development discussions
 help / color / mirror / Atom feed
* [devel] changelogs for apt repo
@ 2008-05-17  5:34 Alexey Tourbin
  2008-05-17  9:50 ` Евгений Терешков
  2008-05-17 12:06 ` Alexey Gladkov
  0 siblings, 2 replies; 35+ messages in thread
From: Alexey Tourbin @ 2008-05-17  5:34 UTC (permalink / raw)
  To: devel

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

Я реализовал включение changelog'ов пакетов в репозитарий и показ их
в 'apt-cache show' (см. мой apt.git).  Работать должно примерно вот так:

$ ./aptbox/apt-cache show perl-YAML |обрезать_домен_мыла
Package: perl-YAML
Section: Development/Perl
Installed Size: 142319
Maintainer: Alexey Tourbin <at@altlinux>
Version: 0.66-alt1
Build Date: Sat May 17 08:52:46 2008
Pre-Depends: rpmlib(PayloadFilesHavePrefix) (<= 4.0-1), rpmlib(CompressedFileNames) (<= 3.0.4-1), rpmlib(VersionedDependencies) (<= 3.0.3-1)
Depends: /usr/bin/perl, perl(Data/Dumper.pm), perl(Term/ReadLine.pm), perl(base.pm), perl(constant.pm), perl(overload.pm), perl(warnings.pm), perl-base (>= 1:5.6.1)
Provides: perl(YAML.pm) (= 0.660), perl(YAML/Base.pm), perl(YAML/Dumper.pm), perl(YAML/Dumper/Base.pm), perl(YAML/Error.pm), perl(YAML/Loader.pm), perl(YAML/Loader/Base.pm), perl(YAML/Marshall.pm), perl(YAML/Node.pm), perl(YAML/Tag.pm), perl(YAML/Types.pm), perl-YAML (= 0.66-alt1)
Architecture: noarch
Size: 48657
MD5Sum: 14f76d223da25a4036a8f771c67bb518
Filename: perl-YAML-0.66-alt1.noarch.rpm
Description: YAML Ain't Markup Language
 The YAML.pm module implements a YAML Loader and Dumper based on the
 YAML 1.0 specification.  YAML is a generic data serialization language
 that is optimized for human readability.  It can be used to express the
 data structures of most modern programming languages (including Perl).
Changelog:
 * Sat May 17 2008 Alexey Tourbin <at@altlinux> 0.66-alt1
 - 0.65 -> 0.66
 * Sat Aug 18 2007 Alexey Tourbin <at@altlinux> 0.65-alt1
 - 0.62 -> 0.65
 * Wed Dec 20 2006 Alexey Tourbin <at@altlinux> 0.62-alt1
 - 0.60 -> 0.62
 - fixed dependency on B::Deparse (cpan #24018)

Package: perl-YAML
Section: Development/Perl
Installed Size: 142138
Maintainer: Alexey Tourbin <at@altlinux>
Version: 0.65-alt1
Pre-Depends: rpmlib(PayloadFilesHavePrefix) (<= 4.0-1), rpmlib(CompressedFileNames) (<= 3.0.4-1), rpmlib(VersionedDependencies) (<= 3.0.3-1)
Depends: perl(Data/Dumper.pm), perl(Term/ReadLine.pm), perl(base.pm), perl(constant.pm), perl(overload.pm), perl(warnings.pm), perl-base (>= 1:5.6.1)
Provides: perl(YAML.pm) (= 0.650), perl(YAML/Base.pm), perl(YAML/Dumper.pm), perl(YAML/Dumper/Base.pm), perl(YAML/Error.pm), perl(YAML/Loader.pm), perl(YAML/Loader/Base.pm), perl(YAML/Marshall.pm), perl(YAML/Node.pm), perl(YAML/Tag.pm), perl(YAML/Types.pm), perl-YAML (= 0.65-alt1)
Architecture: noarch
Size: 48585
MD5Sum: 5c51993475a98083561540d9c5ea4a68
Filename: perl-YAML-0.65-alt1.noarch.rpm
Description: YAML Ain't Markup Language
 The YAML.pm module implements a YAML Loader and Dumper based on the
 YAML 1.0 specification.  YAML is a generic data serialization language
 that is optimized for human readability.  It can be used to express the
 data structures of most modern programming languages (including Perl).

$ 

Здесь 'apt-cache show' показывает два пакета (отличаются версии).
Первый пакет, который я только что собрал -- из моего локального
репозитария.  Этот репозитарий был сгенерирован с включением
changelog'ов, и поэтому 'apt-cache show' показывает changelog.
Второй пакет -- из Сизифа, который сгенерирован без changelog'ов.

Теперь встает вопрос, сколько штук changelog entries копировать при
генерации репозитария, если не все.  Я сначала сделал несколько опций
управления количеством штук, но в конце решил оставить всего одну:

   --changelog-since=DATE     Save package changelogs; copy changelog entries
                              only newer than DATE, and also one entry before
                              the DATE (if available)

Поясню работу этой опции при помощи рисунка:

                 +    +          +    +
------------------|------------------------> t
  *    * *    *  DATE

Здесь на шкале времени плюсами отмечены changelog entries, которые
копируются в файл base/pkglist.*, а звёздочками -- которые не копируются.
То есть, при такой схеме мы знаем последнюю запись в changelog'е пакета
по состоянию на час X, от которого мы отсчитываем, а также все
последующие записи.  Кроме того, копируется как минимум одна запись,
так что команде 'apt-cache show' всегда есть что показать.

Кандидаты на час X следующие:
1) 2007-01-01 -- интуитивно понятная дата;
2) 2007-04-?? -- когда отфоркался branch 4.0.

Теперь остаётся выяснить, сколько это занимает места.

Обычная генерация сизифа:

$ cp -prs /ALT/Sisyphus/x86_64 /ALT/Sisyphus/noarch .
$ rm -f x86_64/base/* noarch/base/*
$ PATH=$PWD:$PATH genbasedir --topdir=$PWD x86_64
$ PATH=$PWD:$PATH genbasedir --topdir=$PWD noarch
$ du -bk x86_64/base/pkglist.classic.bz2 noarch/base/pkglist.classic.bz2 
2421    x86_64/base/pkglist.classic.bz2
1049    noarch/base/pkglist.classic.bz2
$ 

Генерация с опцией --changelog-since=2007-01-01:

$ PATH=$PWD:$PATH genbasedir --topdir=$PWD --changelog-since=2007-01-01 x86_64
$ PATH=$PWD:$PATH genbasedir --topdir=$PWD --changelog-since=2007-01-01 noarch
$ du -bk x86_64/base/pkglist.classic.bz2 noarch/base/pkglist.classic.bz2
3536    x86_64/base/pkglist.classic.bz2
1302    noarch/base/pkglist.classic.bz2
$ 

Таким образом, размер скачиваемого при 'apt-get update' заметно
увеличивается (примерно на треть).  Я считаю это приемлемой платой
за удовольствие просмотреть changelog пакета ДО скачивания и установки.

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

^ permalink raw reply	[flat|nested] 35+ messages in thread

end of thread, other threads:[~2008-05-20 12:27 UTC | newest]

Thread overview: 35+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-05-17  5:34 [devel] changelogs for apt repo Alexey Tourbin
2008-05-17  9:50 ` Евгений Терешков
2008-05-17 12:06 ` Alexey Gladkov
2008-05-17 13:23   ` Andrey Rahmatullin
2008-05-17 13:54     ` Alexey Gladkov
2008-05-17 19:00   ` Alexey Tourbin
2008-05-17 20:01     ` Led
2008-05-17 19:55       ` Andrey Rahmatullin
2008-05-17 21:16         ` Led
2008-05-17 21:09           ` Andrey Rahmatullin
2008-05-18  6:34             ` Kirill Maslinsky
2008-05-17 20:50       ` Alexey Tourbin
2008-05-17 21:58     ` Alexey Gladkov
2008-05-17 21:46       ` Andrey Rahmatullin
2008-05-17 22:14         ` Alexey Gladkov
2008-05-17 22:00           ` Andrey Rahmatullin
2008-05-17 22:21             ` Alexey Gladkov
2008-05-17 22:10               ` Andrey Rahmatullin
2008-05-17 22:32                 ` Alexey Gladkov
2008-05-17 22:45       ` Sergey Bolshakov
2008-05-17 23:03       ` Alexey Tourbin
2008-05-19  4:02         ` Ildar Mulyukov
2008-05-19  4:53           ` Alexey Tourbin
2008-05-19 10:26             ` Ildar Mulyukov
2008-05-19 10:35               ` Andrey Rahmatullin
2008-05-19 10:41                 ` Pavlov Konstantin
2008-05-19 10:43                   ` Andrey Rahmatullin
2008-05-19 10:53                   ` Aleksey Avdeev
2008-05-20 12:27             ` Alexander Bokovoy
2008-05-18  2:07     ` Alexey Tourbin
2008-05-18  2:25       ` Alexey Tourbin
2008-05-18  9:26       ` Alexey Gladkov
2008-05-18 21:35         ` Alexey Tourbin
2008-05-18 22:26           ` Alexey Gladkov
2008-05-20  2:34     ` Alexey Morozov

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