Bug 29496 - Добавить возможность получения списка файлов пакета
Summary: Добавить возможность получения списка файлов пакета
Status: CLOSED FIXED
Alias: None
Product: Infrastructure
Classification: Infrastructure
Component: packages.altlinux.org (show other bugs)
Version: unspecified
Hardware: all Linux
: P3 normal
Assignee: Nobody's working on this, feel free to take it
QA Contact:
URL:
Keywords:
Depends on:
Blocks: 22555
  Show dependency tree
 
Reported: 2013-10-19 01:12 MSK by Vitaly Lipatov
Modified: 2021-11-11 21:18 MSK (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Vitaly Lipatov 2013-10-19 01:12:48 MSK
Если это не противоречит задачам проекта, было бы
хорошо добавить возможность запроса списка файлов в конкретном бинарном пакете конкретного репозитория.

Если дополнительно будет ещё возможность поиска пакета по названию файла, было бы идеально.
Comment 1 Vitaly Lipatov 2013-10-24 17:49:08 MSK
В общем-то выводить этот список на самом сайте тоже было бы неплохо.
Comment 2 Igor Zubkov 2013-10-24 18:13:26 MSK
(В ответ на комментарий №0)
> Если это не противоречит задачам проекта, было бы
> хорошо добавить возможность запроса списка файлов в конкретном бинарном пакете
> конкретного репозитория.

Для этого надо вытаскивать список файлов из него. Нужен пример того как можно их извлекать из rpm файла через rpm -qp --queryformat=что-и-как.

> Если дополнительно будет ещё возможность поиска пакета по названию файла, было
> бы идеально.

Скорее пакетов. Т.к. файл с одним и тем же именем может быть сразу в нескольких пакетах.

(В ответ на комментарий №1)
> В общем-то выводить этот список на самом сайте тоже было бы неплохо.

Добавлю как только смогу спарсить данные.
Comment 3 Vitaly Lipatov 2013-10-25 01:43:09 MSK
(В ответ на комментарий №2)
> (В ответ на комментарий №0)
> > Если это не противоречит задачам проекта, было бы
> > хорошо добавить возможность запроса списка файлов в конкретном бинарном пакете
> > конкретного репозитория.
> 
> Для этого надо вытаскивать список файлов из него. Нужен пример того как можно
> их извлекать из rpm файла через rpm -qp --queryformat=что-и-как.

Может быть можно воспользоваться готовыми списками?
ftp://ftp.altlinux.ru/pub/distributions/ALTLinux/Sisyphus/i586/base/contents_index

А так — 
rpm -ql -p PACKAGEFILE


> 
> > Если дополнительно будет ещё возможность поиска пакета по названию файла, было
> > бы идеально.
> 
> Скорее пакетов. Т.к. файл с одним и тем же именем может быть сразу в нескольких пакетах.
Да, точно.
Comment 4 Igor Zubkov 2013-10-25 13:19:00 MSK
(В ответ на комментарий №3)
> (В ответ на комментарий №2)
> > (В ответ на комментарий №0)
> > > Если это не противоречит задачам проекта, было бы
> > > хорошо добавить возможность запроса списка файлов в конкретном бинарном пакете
> > > конкретного репозитория.
> > 
> > Для этого надо вытаскивать список файлов из него. Нужен пример того как можно
> > их извлекать из rpm файла через rpm -qp --queryformat=что-и-как.
> 
> Может быть можно воспользоваться готовыми списками?
> ftp://ftp.altlinux.ru/pub/distributions/ALTLinux/Sisyphus/i586/base/contents_index

Там только список файлов из всех пакетов. Этого мало.

> А так — 
> rpm -ql -p PACKAGEFILE

Этого мало.
rpm -qpl /ALT/Sisyphus/files/x86_64/RPMS/bash-3.2.51-alt1.qa1.x86_64.rpm 
/bin/bash
/bin/bash2
<...>

Нужно ещё права и всё остальное из пакета.

Как только я разберусь (ну или кто-то поможет) как вытащить эти данных через rpm -qp --queryformat="что-то", так я сразу и добавлю. И в API сделаю.
Comment 5 Vitaly Lipatov 2013-10-25 14:10:16 MSK
А, вот так:
$ erc l erc-0.3-alt0.M70P.1.noarch.rpm 
 $ patool --verbose list erc-0.3-alt0.M70P.1.noarch.rpm
patool: Listing erc-0.3-alt0.M70P.1.noarch.rpm ...
patool: running /bin/rpm -q -l -v -p -- erc-0.3-alt0.M70P.1.noarch.rpm
-rwxr-xr-x    1 root    root             4969 июл 26 22:27 /usr/bin/erc
-rwxr-xr-x    1 root    root             2484 июл 26 22:27 /usr/bin/ercat
drwxr-xr-x    2 root    root                0 июл 26 22:27 /usr/share/doc/erc-0.3
-rw-r--r--    1 root    root            34520 июл 26 16:18 /usr/share/doc/erc-0.3/LICENSE
-rw-r--r--    1 root    root              335 июл 26 16:18 /usr/share/doc/erc-0.3/README
-rw-r--r--    1 root    root              177 июл 26 16:18 /usr/share/doc/erc-0.3/TODO
drwxr-xr-x    2 root    root                0 июл 26 22:27 /usr/share/erc
-rw-r--r--    1 root    root             1974 июл 26 22:27 /usr/share/erc/erc-archive
-rw-r--r--    1 root    root             3426 июл 26 22:27 /usr/share/erc/erc-sh-functions
Comment 6 Michael Shigorin 2017-03-10 14:34:16 MSK
(В ответ на комментарий №4)
> > rpm -ql -p PACKAGEFILE
> Нужно ещё права и всё остальное из пакета.
rpm -qlvp годится?
Comment 7 Igor Zubkov 2017-03-10 15:49:27 MSK
(In reply to comment #6)
> (В ответ на комментарий №4)
> > > rpm -ql -p PACKAGEFILE
> > Нужно ещё права и всё остальное из пакета.
> rpm -qlvp годится?

Как я уже писал в этой задаче:
"Как только я разберусь (ну или кто-то поможет) как вытащить эти данных через
rpm -qp --queryformat="что-то", так я сразу и добавлю. И в API сделаю."

Ничего не изменилось.

-qlvp показывает уже отформатированный и переведнный в человеческий вид данные. Мне нужны сырые данные.

MacBook-Pro-Igor:Downloads biow0lf$ rpm -qplv catpkt-1.0-alt5.src.rpm 
-rw-r--r--    1 builder builder           418 Oct  5  2012 /usr/local/var/lib/rpmbuild/SOURCES/catpkt-1.0-alt-dont-strip.patch
-rw-r--r--    1 builder builder           662 Jul 22  2006 /usr/local/var/lib/rpmbuild/SOURCES/catpkt-1.0-alt-gcc4.patch
-rw-r--r--    1 builder builder          5527 Sep 15  2005 /usr/local/var/lib/rpmbuild/SOURCES/catpkt-1.0-alt-natspec.patch
-rw-r--r--    1 builder builder           348 Mar  8  2006 /usr/local/var/lib/rpmbuild/SOURCES/catpkt-1.0-alt-newld.patch
-rw-r--r--    1 builder builder           350 Jun  7  2005 /usr/local/var/lib/rpmbuild/SOURCES/catpkt-1.0-alt-warnings.patch
-rw-r--r--    1 builder builder          7919 Jun  7  2005 /usr/local/var/lib/rpmbuild/SOURCES/catpkt-1.0.tar.gz
-rw-r--r--    1 builder builder          1603 Oct  5  2012 /usr/local/var/lib/rpmbuild/SPECS/catpkt.spec
MacBook-Pro-Igor:Downloads biow0lf$ rpm -qplv catpkt-1.0-alt5.x86_64.rpm 
-rwxr-xr-x    1 root    root            14760 Oct  5  2012 /usr/bin/catpkt
drwxr-xr-x    2 root    root                0 Oct  5  2012 /usr/share/doc/catpkt-1.0
-rw-r--r--    1 root    root             4094 Apr  3  1999 /usr/share/doc/catpkt-1.0/CHANGES
-rw-r--r--    1 root    root              926 Apr  3  1999 /usr/share/doc/catpkt-1.0/README
-rw-r--r--    1 root    root              111 Apr  3  1999 /usr/share/doc/catpkt-1.0/README.1st
-rw-r--r--    1 root    root              231 Apr  3  1999 /usr/share/doc/catpkt-1.0/README.mc
-rw-r--r--    1 root    root              156 Apr  3  1999 /usr/share/doc/catpkt-1.0/TODO
-rw-r--r--    1 root    root             1386 Apr  3  1999 /usr/share/doc/catpkt-1.0/bsd-style-copyright
MacBook-Pro-Igor:Downloads biow0lf$ 

Кто сможет это повторить через --querytags ?
Comment 8 Vitaly Lipatov 2017-03-15 14:40:47 MSK
%{fileusername}
%{filegroupname}
%{filemodes:perms}
%{longsize}
%{installtime}
Comment 9 Vitaly Lipatov 2017-03-15 14:47:01 MSK
Например,
$ rpm -q --queryformat "[%{FILEMODES:perms} %{FILENAMES} %{FILESIZES}\n]" rpm

Описание здесь:
http://rpm.org/user_doc/query_format.html
Comment 10 Anton Farygin 2017-05-12 19:11:27 MSK
подпишусь, пожалуй.
Нужная фича.
Comment 11 Anton Farygin 2017-05-12 19:13:11 MSK
И если не сложно, то было бы неплохо сразу добавить какое-то API типа JSON для работы с этим списком из приложений.
Comment 12 Anton Farygin 2021-11-11 21:18:17 MSK
Реализовано https://beta.packages.altlinux.org/ru/sisyphus/binary/glibc-gconv-modules/x86_64/files/

Глобальный поиск файлов в планах.