51

rpm -qp --queryformat='Name: %{NAME}\nGroup: %{GROUP}\nURL: %{URL}\nSuggests: %{SUGGESTS}\n[Requires: %{REQUIRES}\n]\nConflicts: %{CONFLICTS}\nProvides: %{PROVIDES}\nObsoletes: %{OBSOLETES}\n'

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

[yuri@localhost ~]$ rpm -qp --queryformat='Name: %{NAME}\nGroup: %{GROUP}\nURL: %{URL}\nSuggests: %{SUGGESTS}\n[Requires: %{REQUIRES}\n]\nConflicts: %{CONFLICTS}\nProvides: %{PROVIDES}\nObsoletes: %{OBSOLETES}\n' glibc-2.14.1-8.mga2.i586.rpm
Name: glibc
Group: System/Libraries
URL: http://www.gnu.org/software/libc/
Suggests: (none)
Requires: dash-static
Requires: dash-static
Requires: /bin/dash.static
Requires: /usr/sbin/glibc-post-wrapper
Requires: rpmlib(PartialHardlinkSets)
Requires: rpmlib(PayloadFilesHavePrefix)
Requires: rpmlib(CompressedFileNames)
Requires: rpmlib(PayloadIsLzma)

Conflicts: prelink
Provides: glibc-crypt_blowfish
Obsoletes: glibc-xen
Спасибо сказали: romkaromka1

52

Gnom пишет:

Что решим с репозиториями? Выкладывать в "конструктор"? Друг у друга тестировать будем?

да, а потом нам сделают из них testing-ветку.

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

53

rpmtorpm-0.0.2:
- добавил обработку возможных ошибок,
- добавил русский и английский язык.

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

54

romkaromka пишет:

devel можно опустить, я их в репы никогда не заливаю.

Зря. Иногда требуются.


Для себя, конечно, во многих случаях не нужны, но тут, всё же, публичная репа.

55

romkaromka пишет:

Выполнить скрипт rpmtorpm. Достаточно прав пользователя.

alien требует прав рута.

56

Исходные пакеты из RPM и SRPM удаляются.
Может сделать, чтобы не удалялись, хотя бы опционально.

57

Они переносятся в MGA, подготавливая директории для нового конвертирования. Alien в данном случае требует прав root лишь формально, для задачи rpmtorpm для alien права root не нужны на самом деле.

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

58

Можно переносить сконвертированные пакеты в основную ветку, проверили - работает.

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

59 (2012-08-27 14:39:40 отредактировано romkaromka)

Не всегда автоматическое получение нужных строк из оригинального spec-файла может сработать, так как там могут понаписать всякого, используя define, или если спек написан сразу для нескольких пакетов, чего интерпретировать очень сложно скриптом, поэтому в новой версии rpmtorpm-0.0.3 предлагается самим написать нужные строки. Заводится папка SPEC, в нее ложится файл любое_имя.*spec, в котором пишутся только строки: Group, URL, Suggests, Requires, Conflicts, Provides, Obsoletes и то не все, а только если нужны.
Если папки SPEC нет или она пуста, то алгоритм работает по прежней схеме.
Как угодно этот файл любое_имя.*spec можно назвать, он будет переименован в head.spec и упакован в окончательный .converted.src.rpm.
Как следствие, стало возможным переопределить названия зависимостей если пакет rpm вообще от неродного дистрибутива.

В версии rpmtorpm-0.0.4 добавил возможность конвертировать noarch.

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

60 (2012-08-27 19:18:40 отредактировано ism)

Может это поможет

Использование rpm2cpio для извлечения файлов из нагрузки пакетов
http://www.lexpr.ru/node/304

Извлечь все содержимое rpm пакета
rpm2cpio php-4.3.3-6.src.rpm | cpio -

Теоретически параметры spec должны храниться в пакете в какомто виде который читают менеджеры пакетов

61

rpm2cpio в скрипте rpmtorpm уже был использован.
Для чего извлекать содержимое rpm пакета? Чего это даст? Как это может помочь обратной упаковке в новый конвертированный rpm пакет?
Скрипт, который сейчас есть, работает нормально - ему бы лишь гуи прикрутить.

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

62

В версии rpmtorpm-0.0.5 добавлена возможность использовать тег

AutoReqProv:

То есть можно задать как

AutoReqProv: no

Про тег Autoreqprov

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