unmasker 0.4 - packages unmasking tool

Ещё один инструмент для размаскировки пакетов и их зависимостей.
Имеет много настроек.

Умеет размаскировывать любые маски (by ~x86, ~amd64, .., package.mask, missing keyword).
В работе использует emerge & eix (база eix на момент запуска должна быть актуальной).

Примеры использования:

Размаскировать kde-meta-3.5.10
# unmasker =kde-base/kde-meta-3.5.10
По умолчанию будет сгенерирован файл - /etc/portage/package.keywords/kde-meta_by_unmasker (и аналогичный в package.unmask - если нужно) в котором будут записи типа:

=kde-base/kde-meta-3.5.10 ~x86
=kde-base/kdepim-meta-3.5.10 ~x86
=kde-base/kdemultimedia-meta-3.5.10 ~x86
=kde-base/kdeutils-meta-3.5.10 ~x86
=kde-base/kdegames-meta-3.5.10 ~x86
...

Размаскировать kde-meta-3.5.10 размаскировыя слот где это возможно. Там же где слота нет, использовать строгое равенство необходимой версии (--unmask-mode equal)
# unmasker --prefer-slotted 1 --unmask-mode equal =kde-base/kde-meta-3.5.10
Сгенерируются:

kde-base/kde-meta:3.5 ~x86
kde-base/kdeutils-meta:3.5 ~x86
kde-base/kdebase-meta:3.5 ~x86
...

Размаскировать слот kde-svn пакета kde-meta
# unmasker kde-meta:kde-svn

Размаскировать слот kde-svn пакета kde-meta используя для сгенерированных файлов указанный постфикс
# unmasker --postfix '_generated' kde-meta:kde-svn

Описание всех параметров доступно для через "unmasker -h".

В настоящий момент поведение "--prefer-slotted 1" и "--unmask-mode equal" задано по умолчанию (настраивается при запуске программы, либо в /etc/unmasker.conf).

Поддерживается naming rules для сгенерированных файлов, вот примеры названий:

nvidia-settings_by_unmasker
tuxonice-sources_by_unmasker
xen-sources_by_unmasker
x11-apps_by_unmasker
x11-libs_by_unmasker

Сгенерированные по навзваниям категориям x11-apps_by_unmasker, x11-libs_by_unmasker, по названию приложения - tuxonice-sources_by_unmasker, nvidia-settings_by_unmasker.

Запуск unmasker без параметров - размаскирует всё необходимое, для обновления мира (чтобы нормально отработал emerge -pv --update --deep --newuse world). Для пользователей достаточно большого колличества нестабильный пакетов бывает очень полезно, ибо нестальный зависимости часто появляются/изменяются.

В ближайшем будущем планируется добавить возможность подчистки каталогов /etc/portage/package.{keywords,unmask} от ненужных/устаревших записей.

Из недостатков: работает медленно, в силу того, что считает зависимости через emerge.

[New] Version Update 0.4:

- Добавилось большое колличество возможностей настройки процесса размаскировки:

  without-version - размаскировывать пакет в целом, без указания версии
  unmask-highest  - размаскировываь максимальную версию пакета
  suppress-svn    - избегать svn версий пакетов, будет браться максимальная доступная до svn версия (обычно это версии - *9999)
  list-versions   - распечатать информацию о всех доступных версиях пакета в удобном виде

- В случае если произошла ошибка размаскировки на экран будет выдан вывод команды emerge для диагностики
- Поддерживаются set-ы введённые в одной из последних версий portage

Положительные стороны:
- Можно очень гибко управлять процессом размаскировки пакетов. Есть возможность записать любую опцию в конфиг (сделать по умолчанию) и переопределять через командную строку.

Известные проблемы:
- Недавно введённые с новым portage новые маскировки по USE флагам пока не поддреживаются. Положительная сторона - их почти нет пока.

Смотрите вывод "unmasker -h" для получения полной информации по опциям и примеров использования.

Ебилды.
Анонсы новых версии и их описание делаются тут.

Вах, дарагой!

Вах, дарагой! Где ж ты был вчера, когда я руками размаскивал компоненты кед 3.5.10...
Спасибо, попробую сегодня.

Вчера я ждал

Вчера я ждал апрува от sourceforge на проект :)

Традиционный

Традиционный вопрос: чем оно лучше app-portage/autoumask и, если лучше, то почему не присоединиться к проекту?


Пожалуйста, не описывайте своё железо в подписи

Quote: чем оно

Цитата:
чем оно лучше app-portage/autoumask

У autounmask практически никаких опций нет, только - pretend & noversion, а здесь много. Существующие инструменты (а они ещё и помимо autounmask есть) у меня работали нестабильно и не всегда могли правильно размаскировать что-то очень большое за один запуск.

unmasker-ом же, я успешно размаскировал kde-3.5.10, kde:svn, kde:4.2, иксы и кучку прочих маленьких пакетов без проблем. Это конечно же не значит, что в нём нет ошибок, просто у меня так сложилось, что остальные хуже работали.

Цитата:
почему не присоединиться к проекту?

Причины религиозные и тупые.
По мне, так существующий код не настолько сложный и большой, а функционал не так обилен, чтобы из-за него время на коммуникации с разработчиком тратить (ну и притом, что он уже больше года этой программой незанимается). В этом случае, мне было проще с нуля написать и кучку wanted возможностей сразу добавить.

Kак

Kак размаскировать KDE 4.1.66?

На твой

На твой выбор:

unmasker kde-base/kde-meta:4.2

или

unmasker =kde-base/kde-meta-4.1.66

Вообще 4.1.66 уже нет в оверлее, 4.1.67 - последняя.

хм... # unmasker

хм...
# unmasker kde-base/kde-meta:4.2
Calculating dependencies for 'emerge -pv kde-base/kde-meta:4.2' ...
Package doesn't exists.

Ну так а чего ты хочеш

Ну так а чего ты хочеш то?

Пакета нету такого, так и написано. Знаю что был, но видимо из kde-testing удалили недавно.

Version Update 0.4

Подробности в первом посте темы.

Автору BIG респект.

Архиполезная утилита. Может кто в багзиллу запостит? Для включения в основную ветку или, на крайняк, в sunrise. Единственное но, может туплю или недосмотрел? --pretend совсем не помешал бы.

а как

а как замаскировать kde:4 :))) а то они после обновления от 11.10.08 просятся поставиться, а мне их совершенно не нуна :(

Мне вот тоже

Мне вот тоже интересно. руками не хочется маскировать

Да, я думал об

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

Посмотрю насколько автоматизируемо и как можно лучше реализовать.
В TODO-листе вобщем.

Спасибо. Будет

Спасибо. Будет pretend, чуть позже.

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

было бы не

было бы не плохо, если бы программа работала в обоих направлениях. странно что в стандартных gentoo-toolkits такого не реализовано. или я не встречал? да, а почему программа в бинарниках. исходники есть? :)

на счет маскировки kde-4, мой вариант:


=media-sound/phonon-4*
=kde-base/kdelibs-4*
=kde-base/kdepimlibs-4*
=kde-base/kode-4*
=kde-base/libkworkspace-4*
=kde-base/libkonq-4*
=kde-base/libtaskmanager-4*
=kde-base/kdesu-4*
=kde-base/kdebase-data-4*
=kde-base/knotify-4*
=kde-base/kcontrol-4*
=kde-base/kdialog-4*
=kde-base/kcheckpass-4*
=kde-base/kscreensaver-4*
=kde-base/kde-menu-icons-4*
=kde-base/kurifilter-plugins-4*
=kde-base/solid-4*
=kde-base/ksplash-4*
=kde-base/nepomuk-4*
=kde-base/kdeartwork-iconthemes-4*
=kde-base/kwin-4*
=kde-base/libkcddb-4*
=kde-base/libkcompactdisc-4*
=kde-base/kioclient-4*
=kde-base/kiconfinder-4*
=kde-base/konsole-4*
=kde-base/solid-hardware-4*
=kde-base/ktraderclient-4*
=kde-base/ktimezoned-4*
=kde-base/kmenuedit-4*
=kde-base/kappfinder-4*
=kde-base/kmimetypefinder-4*
=kde-base/drkonqi-4*
=kde-base/kquitapp-4*
=kde-base/knewstuff-4*
=kde-base/knetattach-4*
=kde-base/kuiserver-4*
=kde-base/kwrite-4*
=kde-base/kdebase-cursors-4*
=kde-base/kstart-4*
=kde-base/kpasswdserver-4*
=kde-base/kdebugdialog-4*
=kde-base/renamedlg-plugins-4*
=kde-base/ksystraycmd-4*
=kde-base/kinfocenter-4*
=kde-base/kfile-4*
=kde-base/khelpcenter-4*
=kde-base/kcmshell-4*
=kde-base/kde-menu-4*
=kde-base/kde-wallpapers-4*
=kde-base/kstartupconfig-4*
=kde-base/kstyles-4*
=kde-base/kreadconfig-4*
=kde-base/ksystemlog-4*
=kde-base/knetworkconf-4*
=kde-base/kcalc-4*
=kde-base/kdenetwork-filesharing-4*
=kde-base/kopete-4*
=kde-base/kdeartwork-styles-4*
=kde-base/kppp-4*
=kde-base/kdeartwork-sounds-4*
=kde-base/ksnapshot-4*
=kde-base/kolourpaint-4*
=kde-base/kdeartwork-emoticons-4*
=kde-base/kdeartwork-wallpapers-4*
=kde-base/ark-4*
=kde-base/kruler-4*
=kde-base/kmix-4*
=kde-base/kcharselect-4*
=kde-base/kdeartwork-icewm-themes-4*
=kde-base/libplasma-4*
=kde-base/libkdepim-4*
=kde-base/dolphin-4*
=kde-base/kfind-4*
=kde-base/kdepasswd-4*
=kde-base/soliduiserver-4*
=kde-base/kdebase-kioslaves-4*
=kde-base/kcminit-4*
=kde-base/kontactinterfaces-4*
=kde-base/keditbookmarks-4*
=kde-base/khotkeys-4*
=kde-base/klipper-4*
=kde-base/systemsettings-4*
=kde-base/libkleo-4*
=kde-base/kdemaildir-4*
=kde-base/kcron-4*
=kde-base/kuser-4*
=kde-base/kdeartwork-kscreensaver-4*
=kde-base/kdemultimedia-kioslaves-4*
=kde-base/konqueror-4*
=kde-base/plasma-workspace-4*
=kde-base/ksmserver-4*
=kde-base/knotes-4*
=kde-base/kdm-4*
=kde-base/plasma-apps-4*
=kde-base/akonadi-4*
=kde-base/kaddressbook-4*
=kde-base/kdeadmin-meta-4*
=kde-base/kget-4*
=kde-base/kalarm-4*
=kde-base/ksysguard-4*
=kde-base/nsplugins-4*
=kde-base/kdepim-kresources-4*
=kde-base/krunner-4*
=kde-base/kdebase-startkde-4*
=kde-base/phonon-xine-4*
=kde-base/kdebase-meta-4*
=kde-base/kommander-4*
=kde-base/cervisia-4*
=kde-base/kdesdk-meta-4*
=media-sound/amarok-1.9*
=kde-base/kompare-4*

что не добавленно можно вставить после :) всяко меньше будет работы :)

Ну ты шутник, в

Цитата:
было бы не плохо, если бы программа работала в обоих направлениях. странно что в стандартных gentoo-toolkits такого не реализовано. или я не встречал?

насколько я знаю - нет.

Цитата:
да, а почему программа в бинарниках. исходники есть? :)

Ну ты шутник... в бинарниках.. :)

Распакуй unmasker-0.4.tbz2 к примеру и посмотри содержимое.
Не все программы должны компилироваться, существуют ещё и интерпритация.
Весь исходник (он же и исполняемый файл) лежит у тебя по адресу /usr/bin/unmasker.

http://bugs.gentoo.org/show_b

Цитата:
Архиполезная утилита. Может кто в багзиллу запостит?

http://bugs.gentoo.org/show_bug.cgi?id=242300

+1

Ну что тут сказать можно кроме как: большое человеческое спасибо :))

Интересный какой ебилд,

Интересный какой ебилд, portage 2.2rc_11 над ним задумывается так, что приходится SIGKILL'ом убивать.


Пардон, дело было в distfiles на NFS

Текстовый редактор vi имеет два режима работы: в первом он пищит, а во втором — всё портит.

За ебилд руки пообрывают

За ебилд руки пообрывают :)
По пунктам
1. Все доступные архи должны быть маскированы
2. Убери с депенда sys-apps/portage
3. eix - скорее runtime depend (RDEPEND)
4. Конструкцию "cp -rf ${S}/etc ${D}" надо заменить на insinto / newins
5. Добавить какую-нибудь документацию через dodoc (AUTHORS, README)
6. Постинст - заменить вывод файла на elog (это если там что-то действительно важное)

Ну напоследок - repoman'ом, что вывести еще каких жучков.

Не грусти, товарищ! Всё хорошо, beautiful good!

Ебилд обновлён

За советы спасибо, но мне кажется не очень удачной идеей давать их (такого рода) на этом форуме.

Здесь есть смысл обсуждать функционал, непонятки какие, новые фичи может, т.к это интересно многим, и уж ни как не стиль написания ебилда, когда представлен вобщем-то не он, а программа.

Написал бы в джаббер или на почту.

Ебилд обновлён, спасибо замечания.

unmasker

unmasker =kde-base/kde-meta:4.2
Calculating dependencies for 'emerge -pv =kde-base/kde-meta:4.2' ...
Infinite cycle detected. I cant resolve dependencies by myself, please help me!

These are the packages that would be merged, in order:

Calculating dependencies ... done!

=kde-base/kde-meta:4.2 «Поста

=kde-base/kde-meta:4.2
«Поставь-ка мне KDE ветки 4.2, да именно эту версию»

Текстовый редактор vi имеет два режима работы: в первом он пищит, а во втором — всё портит.

huh?

huh?

ВОт и unmasker это говорит

Вот и unmasker это говорит

Текстовый редактор vi имеет два режима работы: в первом он пищит, а во втором — всё портит.

Соревнуешься в номинации за

Соревнуешься в номинации за самый бесполезный комментарий или готовишься к конкурсу загадок?

Хватит пытаться перещеголять

Хватит пытаться перещеголять меня в остроумии. Присмотрись к тому, что я выделил в команде, и поразмысли, как должен portage расценивать указание установить точную версию слота.

Текстовый редактор vi имеет два режима работы: в первом он пищит, а во втором — всё портит.

Я то уже давно понял, но не

Я то уже давно понял, но не благодаря твоему "остроумному" комментарию.

"=kde-base/kde-meta:4.2" -

"=kde-base/kde-meta:4.2" - это неправильный синтаксис. Такой и портаджу не понятен будет.

надо писать - kde-base/kde-meta:4.2 если используешь слот.
= ставиться НЕ для слотов при точном указании версии.

Да, я уже давно разобрался,

Да, я уже давно разобрался, спасибо. :)

Обновление?

Не планируешь тулзу обновить? А то что-то после каких-то обновлений перестало корректно работать:

# unmasker kmail:4.3
Calculating dependencies for 'emerge -pv kmail:4.3' ...
std::string PrintFormat::get_pkg_property(const Package*, const std::string&) const: Unknown property 'availableversions'
=kde-base/kmail-4.3.1 ~x86
std::string PrintFormat::get_pkg_property(const Package*, const std::string&) const: Unknown property 'availableversions'
=kde-base/libksieve-4.3.1 ~x86
std::string PrintFormat::get_pkg_property(const Package*, const std::string&) const: Unknown property 'availableversions'
=kde-base/libkleo-4.3.1 ~x86
std::string PrintFormat::get_pkg_property(const Package*, const std::string&) const: Unknown property 'availableversions'
=kde-base/libkdepim-4.3.1 ~x86
std::string PrintFormat::get_pkg_property(const Package*, const std::string&) const: Unknown property 'availableversions'
=kde-base/mimelib-4.3.1 ~x86
std::string PrintFormat::get_pkg_property(const Package*, const std::string&) const: Unknown property 'availableversions'
=kde-base/libkpgp-4.3.1 ~x86
std::string PrintFormat::get_pkg_property(const Package*, const std::string&) const: Unknown property 'availableversions'
=kde-base/kontactinterfaces-4.3.1 ~x86
std::string PrintFormat::get_pkg_property(const Package*, const std::string&) const: Unknown property 'availableversions'
=kde-base/kmailcvt-4.3.1 ~x86
=
-- Invalid line 535 in /etc/portage/package.keywords: '='
    Can't read category.

Infinite cycle detected. I cant resolve dependencies by myself, please help me!

Привет. Я переписал его на

Привет. Я переписал его на питоне какое-то время назад, заодно адаптировав под новый портедж и научил автоматически менять USE флаги (в portage 2.2 появились такие маскировки).

Но не хватило время протестить хорошо, немного допилить (перестал поддерживаться конфиг файл и возможно кое-что ещё упущено) и выложить в общий доступ.

Можешь потестить - http://unmasker.sourceforge.net/unmasker-0.5a.rar

Кстати теперь ему ещё и eix не требуется (зато нужет flagedit для изменения флагов).

На моей машине работает корректно (с последним portage).

PS. Синтаксис задания параметров мог немного измениться с прошлой версии, посмотри примеры в хелпе (unmasker --help), вроде его обновлял.

Настройки просмотра комментариев

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