26 (2012-08-12 14:44:16 отредактировано romkaromka)

Всё есть и всё работает, вопрос только к админам чтобы открыли нужные ссылки, убрав ненужные. На рисунке сортировка по дате (обычный firefox).
http://forum.mageia.org.ru/extensions/hcs_image_uploader/uploads/0/2500/2736/thumb/p174da7qkot6210im141n13fd130n1.jpg

Аккаунт отключен по просьбе пользователя. (28.12.2014)

27

romkaromka пишет:

Всё есть и всё работает, вопрос только к админам чтобы открыли нужные ссылки, убрав ненужные. На рисунке сортировка по дате (обычный firefox).
http://forum.mageia.org.ru/extensions/hcs_image_uploader/uploads/0/2500/2736/thumb/p174da7qkot6210im141n13fd130n1.jpg

Ага, это если зарегистрированный пользователь открывает в браузере репу по протоколу ftp. С таким же успехом можно эту же репу и в ftp-клиенте открыть, там заголовки столбцов с возможностью сортировки по ним - вообще стандартная фича, как в файловом менеджере. Но если использовать ссылки со страницы "репозиторий" сайта, которые доступны всем, а не только зарегистрированным пользователям, то там протокол http и заголовков столбцов нет, соответственно и выбор типа сортировки не работает.

28 (2012-08-13 21:44:23 отредактировано XliN)

Вот и я думаю. Что бы сделать? Может какую шкуру можно прицепить к nginx? Что сортировочка была. Не могу найти что то подобное. Есть же, полюбому.

З.Ы. Может все же скрипт кто напишет, я питон через fastcgi подключил. Теперь не только рнр едины.

MXLinux 19.3 - xfce
Чем больше я работаю админом, тем больше понимаю,
насколько волшебна фраза - "Нет технической возможности!"

==============================================

29

XliN пишет:

Вот и я думаю. Что бы сделать? Может какую шкуру можно прицепить к nginx? Что сортировочка была. Не могу найти что то подобное. Есть же, полюбому.

З.Ы. Может все же скрипт кто напишет, я питон через fastcgi подключил. Теперь не только рнр едины.

Давайте. Чего писать то? smile

30

omerta13 пишет:

Давайте. Чего писать то? smile

Парсер реп пользователей (основных и construct) с генерацией HTML-таблички вида:
имя пакета | версия | дата создания | майнтейнер | репозиторий | i586 | noarch |  x86_64

Три последних столбца - галочки. Репозиторий - main или testing/construct.

Плюс проверка базовых ошибок: наличие одинаковых пакетов в репах разных пользователей или ошибка архитектуры пакета (у меня было как-то раз, что я пакеты для x86_64 залил в репу i586).

Заголовки столбцов таблицы должны быть кликабельны для выбора типа сортировки строк таблицы.

Внешний вид на Ваше усмотрение smile .

31

Если получится, то это будет мега удобно и для пользователей и для майнтейнеров. Плюс огромный вклад в MRC.

MXLinux 19.3 - xfce
Чем больше я работаю админом, тем больше понимаю,
насколько волшебна фраза - "Нет технической возможности!"

==============================================

32

olelukoie пишет:
omerta13 пишет:

Давайте. Чего писать то? smile

Парсер реп пользователей (основных и construct) с генерацией HTML-таблички вида:
имя пакета | версия | дата создания | майнтейнер | репозиторий | i586 | noarch |  x86_64

Три последних столбца - галочки. Репозиторий - main или testing/construct.

Плюс проверка базовых ошибок: наличие одинаковых пакетов в репах разных пользователей или ошибка архитектуры пакета (у меня было как-то раз, что я пакеты для x86_64 залил в репу i586).

Заголовки столбцов таблицы должны быть кликабельны для выбора типа сортировки строк таблицы.

Внешний вид на Ваше усмотрение smile .

Поправьте меня, если я что-то не так понял. Скрипт на вход получает каталог, каталог рекурсивно обходится, выполняется поиск всех RPM-файлов. По найденным RPM-файлам формируется HTML-таблица.

P. S.: давайте функциональность проверки репозитория реализуем в отдельной утилите. Unix way в деле: одна функция -- один инстурмент wink

33

Да. Все именно так ты понял. Юникс путь это замечательно, я только за.

MXLinux 19.3 - xfce
Чем больше я работаю админом, тем больше понимаю,
насколько волшебна фраза - "Нет технической возможности!"

==============================================

34

Имена мейнтейнеров можно получить только по имени каталога. Мне нужен пример структуры каталогов. Написал первую версию скрипта, которая просто собирает информацию по RPM и делает из неё HTML табличку.

35 (2012-08-16 12:27:30 отредактировано XliN)

/home/xlin

drwxr-xr-x  6 xlin xlin  4096 июня  12 17:04 construct
drwxr-xr-x  5 xlin xlin  4096 июня  12 16:54 RPMS
drwxr-xr-x  2 xlin xlin  4096 июня  12 16:55 SRPMS
/home/xlin/construct/
├── RPMS
│   ├── i586
│   ├── noarch
│   └── x86_64
├── SOURCES
├── SPECS
└── SRPMS
/home/xlin/RPMS/
├── i586
├── noarch
└── x86_64

Пакеты лежат в папках i586, noarch и x86_64. Например вот от romkaromka пакеты для i586

/home/romkaromka/RPMS/i586/

-rw-r--r-- 1 romkaromka romkaromka  100310 июня  17 01:05 asunder-2.2-1.mrc.mga2.i586.rpm
-rw-r--r-- 1 romkaromka romkaromka  422829 авг.   4 00:54 basic256-0.9.6.69-1.mrc.mga2.i586.rpm
-rw-r--r-- 1 romkaromka romkaromka   21565 авг.   4 00:54 basic256-debug-0.9.6.69-1.mrc.mga2.i586.rpm
-rw-r--r-- 1 romkaromka romkaromka  887169 июня  17 01:09 dvdrip-0.98.11-1.mrc.mga2.i586.rpm
-rw-r--r-- 1 romkaromka romkaromka 1982903 авг.   1 18:42 kdesvn-1.5.5-5.mrc.mga2.i586.rpm
-rw-r--r-- 1 romkaromka romkaromka 5788605 авг.   1 18:42 kdesvn-debug-1.5.5-5.mrc.mga2.i586.rpm

Список майнтейнеров не большой к сожалению.
Это gnom, mageiafriend, olelukoie, romkaromka,vagulo, verg, wildpile, zomby У каждого из этих пользователей одинаковая структура папок.

├── construct
│   ├── RPMS
│   │   ├── i586
│   │   ├── noarch
│   │   └── x86_64
│   ├── SOURCES
│   ├── SPECS
│   └── SRPMS
├── RPMS
│   ├── i586
│   ├── noarch
│   └── x86_64
├── SRPMS
└── tmp
MXLinux 19.3 - xfce
Чем больше я работаю админом, тем больше понимаю,
насколько волшебна фраза - "Нет технической возможности!"

==============================================

36

Так еще нагляднее. Видно что где лежит

Spoiler
├── construct
│   ├── RPMS
│   │   ├── i586
│   │   │   ├── mseide-msegui-2.9-1.mrc.mga2.i586.rpm
│   │   │   ├── mseide-msegui-2.9-3.mrc.mga2.i586.rpm
│   │   │   ├── mseide-msegui-2.9-5.mrc.mga2.i586.rpm
│   │   │   ├── mseide-msegui-debug-2.9-1.mrc.mga2.i586.rpm
│   │   │   ├── mseide-msegui-debug-2.9-3.mrc.mga2.i586.rpm
│   │   │   └── mseide-msegui-debug-2.9-5.mrc.mga2.i586.rpm
│   │   ├── noarch
│   │   └── x86_64
│   ├── SOURCES
│   ├── SPECS
│   └── SRPMS
│       ├── mseide-msegui-2.9-1.mrc.mga2.src.rpm
│       ├── mseide-msegui-2.9-3.mrc.mga2.src.rpm
│       └── mseide-msegui-2.9-5.mrc.mga2.src.rpm
├── RPMS
│   ├── i586
│   │   ├── asunder-2.2-1.mrc.mga2.i586.rpm
│   │   ├── basic256-0.9.6.69-1.mrc.mga2.i586.rpm
│   │   ├── basic256-debug-0.9.6.69-1.mrc.mga2.i586.rpm
│   │   ├── dvdrip-0.98.11-1.mrc.mga2.i586.rpm
│   │   ├── kdesvn-1.5.5-5.mrc.mga2.i586.rpm
│   │   ├── kdesvn-debug-1.5.5-5.mrc.mga2.i586.rpm
│   │   ├── kdesvn-devel-1.5.5-5.mrc.mga2.i586.rpm
│   │   ├── klavaro-1.9.3-2.mrc.mga2.i586.rpm
│   │   ├── klavaro-debug-1.9.3-2.mrc.mga2.i586.rpm
│   │   ├── liblinphone4-3.5.2-2.mrc.mga2.i586.rpm
│   │   ├── liblinphone-devel-3.5.2-2.mrc.mga2.i586.rpm
│   │   ├── libmediastreamer1-3.5.2-2.mrc.mga2.i586.rpm
│   │   ├── libsvnqt4_6-1.5.5-5.mrc.mga2.i586.rpm
│   │   ├── linphone-3.5.2-2.mrc.mga2.i586.rpm
│   │   ├── linphone-debug-3.5.2-2.mrc.mga2.i586.rpm
│   │   ├── mdf2iso-0.3.0-1.mrc.mga2.i586.rpm
│   │   ├── mseide-msegui-2.8-11.mrc.mga2.i586.rpm
│   │   ├── mseide-msegui-2.8-12.mrc.mga2.i586.rpm
│   │   ├── openl2tp-1.8-1.mrc.mga2.i586.rpm
│   │   ├── phun-5.28-5.mrc.mga2.i586.rpm
│   │   ├── phun-debug-5.28-5.mrc.mga2.i586.rpm
│   │   ├── ppp-2.4.5-7.mrc.mga2.i586.rpm
│   │   ├── q4wine-0.121-1.mrc.mga2.i586.rpm
│   │   ├── vpnpptp-allde-0.3.6-2.mrc.mga2.i586.rpm
│   │   ├── xl2tpd-1.3.0-1.mrc.mga2.i586.rpm
│   │   └── xroot-0.0.5-1.mrc.mga2.i586.rpm
│   ├── noarch
│   │   ├── atunes-2.1.0-1.mrc.mga2.noarch.rpm
│   │   ├── memaker-20100110-1.mrc.mga2.noarch.rpm
│   │   ├── photofilmstrip-1.4.4-1.mrc.mga2.noarch.rpm
│   │   └── xsudo-0.1.0-1.mrc.mga2.noarch.rpm
│   └── x86_64
│       ├── asunder-2.2-1.mrc.mga2.x86_64.rpm
│       ├── dvdrip-0.98.11-1.mrc.mga2.x86_64.rpm
│       ├── mdf2iso-0.3.0-1.mrc.mga2.x86_64.rpm
│       ├── mseide-msegui-2.8-11.mrc.mga2.x86_64.rpm
│       ├── mseide-msegui-2.8-12.mrc.mga2.x86_64.rpm
│       ├── openl2tp-1.8-1.mrc.mga2.x86_64.rpm
│       ├── ppp-2.4.5-7.mrc.mga2.x86_64.rpm
│       ├── q4wine-0.121-1.mrc.mga2.x86_64.rpm
│       ├── vpnpptp-allde-0.3.6-2.mrc.mga2.x86_64.rpm
│       ├── xl2tpd-1.3.0-1.mrc.mga2.x86_64.rpm
│       └── xroot-0.0.5-1.mrc.mga2.x86_64.rpm
├── SRPMS
│   ├── asunder-2.2-1.mrc.mga2.src.rpm
│   ├── atunes-2.1.0-1.mrc.mga2.src.rpm
│   ├── basic256-0.9.6.69-1.mrc.mga2.src.rpm
│   ├── dvdrip-0.98.11-1.mrc.mga2.src.rpm
│   ├── kdesvn-1.5.5-5.mrc.mga2.src.rpm
│   ├── klavaro-1.9.3-2.mrc.mga2.src.rpm
│   ├── linphone-3.5.2-2.mrc.mga2.src.rpm
│   ├── mdf2iso-0.3.0-1.mrc.mga2.src.rpm
│   ├── memaker-20100110-1.mrc.mga2.src.rpm
│   ├── mseide-msegui-2.8-11.mrc.mga2.src.rpm
│   ├── mseide-msegui-2.8-12.mrc.mga2.src.rpm
│   ├── openl2tp-1.8-1.mrc.mga2.src.rpm
│   ├── photofilmstrip-1.4.4-1.mrc.mga2.src.rpm
│   ├── phun-5.28-5.mrc.mga2.src.rpm
│   ├── ppp-2.4.5-7.mrc.mga2.src.rpm
│   ├── q4wine-0.121-1.mrc.mga2.src.rpm
│   ├── vmware-player-4.0.4-1.mrc.mga2.src.rpm
│   ├── vmware-player-4.0.4-3.mrc.mga2.src.rpm
│   ├── vpnpptp-allde-0.3.6-2.mrc.mga2.src.rpm
│   ├── xl2tpd-1.3.0-1.mrc.mga2.src.rpm
│   ├── xroot-0.0.5-1.mrc.mga2.src.rpm
│   └── xsudo-0.1.0-1.mrc.mga2.src.rpm
MXLinux 19.3 - xfce
Чем больше я работаю админом, тем больше понимаю,
насколько волшебна фраза - "Нет технической возможности!"

==============================================

37

Да, кстати, пакеты -debug- лучше сразу отфильтровывать, раз уж отдельной репы для них не предусмотрено. И вопрос - парсить заголовки rpm-пакетов возможности нет совсем?

38

olelukoie пишет:

Да, кстати, пакеты -debug- лучше сразу отфильтровывать, раз уж отдельной репы для них не предусмотрено. И вопрос - парсить заголовки rpm-пакетов возможности нет совсем?

Как это нет? smile Их-то я в основном и читаю. Просто в RPM нет тэга для имени мейнтейнера. Есть тэг VENDOR, но он предназначен для другого.

39

omerta13 пишет:
olelukoie пишет:

Да, кстати, пакеты -debug- лучше сразу отфильтровывать, раз уж отдельной репы для них не предусмотрено. И вопрос - парсить заголовки rpm-пакетов возможности нет совсем?

Как это нет? smile Их-то я в основном и читаю. Просто в RPM нет тэга для имени мейнтейнера. Есть тэг VENDOR, но он предназначен для другого.

Эээ... А Packager? Вот например:

$ rpm -qi basesystem
Name        : basesystem                   Relocations: (not relocatable)
Version     : 2010.0                            Vendor: Mandriva
Release     : 1mdv2010.0                    Build Date: Птн 25 Сен 2009 17:27:59
Install Date: Втр 10 Ноя 2009 15:23:03      Build Host: n2.mandriva.com
Group       : System/Base                   Source RPM: basesystem-2010.0-1mdv2010.0.src.rpm
Size        : 0                                License: GPL
Signature   : DSA/SHA1, Птн 30 Окт 2009 01:03:32, Key ID e7898ae070771ff3
Packager    : Olivier Blin <oblin@mandriva.com>
Summary     : The skeleton package which defines a simple Mandriva Linux system
Description :
Basesystem defines the components of a basic Mandriva Linux system (for
example, the package installation order to use during bootstrapping).
Basesystem should be the first package installed on a system, and it
should never be removed.

Здесь видно, что "Packager    : Olivier Blin <oblin@mandriva.com>", я думаю, что это поле и надо использовать, не? Правда если, скажем, для i586 пакет собрал один человек, а для x86_64 - другой, то не понятно, как это объединить...

40

Ни Packager, ни Vendor в спеках может не быть. Руководствуйтесь лучше директориями нашего репозитория - у кого пакет лежит, тот его и собрал.

Аккаунт отключен по просьбе пользователя. (28.12.2014)

41

olelukoie пишет:
omerta13 пишет:
olelukoie пишет:

Да, кстати, пакеты -debug- лучше сразу отфильтровывать, раз уж отдельной репы для них не предусмотрено. И вопрос - парсить заголовки rpm-пакетов возможности нет совсем?

Как это нет? smile Их-то я в основном и читаю. Просто в RPM нет тэга для имени мейнтейнера. Есть тэг VENDOR, но он предназначен для другого.

Эээ... А Packager? Вот например:

Блин действительно пакагер. Кто бы мог подумать. Спасибо smile

42

В общем скрипт на перле написан. Я завёл репозиторий на BitBucket (http://bitbucket.org/ymyasoedov/mrc-web-scripts/src), куда можно будет выкладывать веб-скрипты. Вообще по идее надо активнее использовать системы контроля версий.

Скрипт можно получить следующим образом:

git clone https://bitbucket.org/ymyasoedov/mrc-web-scripts.git

или:

git clone git@bitbucket.org:ymyasoedov/mrc-web-scripts.git

Пользоваться так:

./gen-pkg-table [каталог...] > файл.html

Например:

./gen-pkg-table mageia/distrib/2/i586/media/core/ > table.html

Скрипт проходит по указанному каталогу рекурсивно. Скрипту можно скормить сразу несколько каталогов, для это их просто надо перечислить один за одним. Я предложил выполнить эту задачу итеративно. Первая итерация по идее готова. Что надо будет сделать на второй:
* подключить javascript-код для сортировки таблицы по столбцам
* CSS, чтобы табличка была покрасивше

Спасибо сказали: XliN, xxblx2

43

Сделал два изменения:

  • добавил javascript для сортировки столбцов;

  • добавил CSS.

Далее:

  • нужно добавить разбор тэга PACKAGER;

  • удалить из списка debug-пакеты

Спасибо сказали: XliN1

44

Сейчас прикручу это на сервер. Надо посмотреть что выходит. Ну и чтобы люди видили прогресс.

MXLinux 19.3 - xfce
Чем больше я работаю админом, тем больше понимаю,
насколько волшебна фраза - "Нет технической возможности!"

==============================================

45

PACKAGER ничего не даст, я его ни разу не писал.

Аккаунт отключен по просьбе пользователя. (28.12.2014)

46

Как залить исправленный скрипт?
1. Изменил стиль CSS для таблицы
2. Применил другой скрипт для сортировки. Сортирует по любому столбцу
3. Подправил сам perl скрипт

Для просмотра того что получилось тыкайте http://mageia.org.ru/list/package.html
Это список пакетом от Mageiafriend

MXLinux 19.3 - xfce
Чем больше я работаю админом, тем больше понимаю,
насколько волшебна фраза - "Нет технической возможности!"

==============================================

47 (2012-08-19 13:55:54 отредактировано XliN)

Скрипт на перле http://pastebin.com/BLxYUAkk
Стиль CSS http://pastebin.com/yS9UfaRB
Скрипт сортировки http://pastebin.com/Wbf5rFst

MXLinux 19.3 - xfce
Чем больше я работаю админом, тем больше понимаю,
насколько волшебна фраза - "Нет технической возможности!"

==============================================

48

romkaromka пишет:

PACKAGER ничего не даст, я его ни разу не писал.

Если взять файл .rpmmacros вот здесь, то packager будет добавляться автоматом, надо только один раз правильно указать имя и мыло.

49 (2012-08-19 16:52:57 отредактировано olelukoie)

XliN пишет:

Для просмотра того что получилось тыкайте http://mageia.org.ru/list/package.html
Это список пакетом от Mageiafriend

Получилось неплохо, но я полагал, что по архитектурам надо три отдельных столбца с галочками (ну или плюсиками) и минусами, а то таблица в два раза длиннее, чем надо, получается - строки с пакетами для i586 и x86_64 дублируются. И да, столбца "майнтейнер" нету smile .

50

olelukoie пишет:

Получилось неплохо, но я полагал, что по архитектурам надо три отдельных столбца с галочками (ну или плюсиками) и минусами, а то таблица в два раза длиннее, чем надо, получается - строки с пакетами для i586 и x86_64 дублируются. И да, столбца "майнтейнер" нету

Это только первые наработки. Было бы желание.

MXLinux 19.3 - xfce
Чем больше я работаю админом, тем больше понимаю,
насколько волшебна фраза - "Нет технической возможности!"

==============================================