From: Alexey Tourbin <at@altlinux.ru> To: devel@lists.altlinux.org Subject: [devel] changelogs for apt repo Date: Sat, 17 May 2008 09:34:27 +0400 Message-ID: <20080517053427.GJ19126@solemn.turbinal> (raw) [-- 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 --]
next reply other threads:[~2008-05-17 5:34 UTC|newest] Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top 2008-05-17 5:34 Alexey Tourbin [this message] 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
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=20080517053427.GJ19126@solemn.turbinal \ --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