P2 Touchpoint chmod не работает? - PullRequest
3 голосов
/ 05 апреля 2010

Я использую Eclipse 3.5.2, и я создал p2.inf со следующей информацией:

instructions.install = \
chmod(targetDir:@artifact,targetFile:$os$/libfoo.so,permissions:755);

instructions.install.import= \
org.eclipse.equinox.p2.touchpoint.natives.chmod

Я поместил p2.inf в папку META-INF фрагмента, но при установке сайта обновления libfoo.so не имеет разрешений на выполнение.

Выдернув свои волосы, я попробовал p2.inf, ссылающийся на несуществующий * .so, но, похоже, ничего не произошло. Никаких сообщений об ошибках, исключений или предупреждений, указывающих на сбой действия точки прикосновения P2 ...

В чем дело? Есть идеи?

Ответы [ 3 ]

3 голосов
/ 12 июля 2011

Строка импорта должна быть org.eclipse.equinox.p2.touchpoint.eclipse.chmod (то есть eclipse , а не native ), согласно следующему комментарию из org.eclipse.equinox.internal.p2. touchpoint.eclipse.actions.ChmodAction

// This basically a copy of the chmod action in the native touchpoint,
// only it provides @artifact support.

(Для сравнения смотрите действие 'natives' chmod )

Я не проверял поддержку интерполяционных переменных, таких как 'os'.

2 голосов
/ 31 июля 2010

В Eclipse 3.6 (не знаю о предыдущих версиях) вместо @artifact используется переменная $ {artifact.location}. Мне пришлось копаться в исходном коде p2, чтобы найти его, но использование его в параметре targetDir сработало как чудо.

1 голос
/ 06 апреля 2010

Я заметил пару вещей:

  1. Действие "touchpoint.natives.chmod" не похоже на то, что оно поддерживает @artifact. Попробуйте вместо этого использовать org.eclipse.equinox.p2.touchpoint.eclipse.chmod.
  2. os не является параметром, который заменяется во время установки. Кроме того, если посмотреть на исходный код p2, если бы «os» был параметром, то, похоже, синтаксис на самом деле был бы ${os}. (См. ParameterizedProvisioningAction # processVariables)

Обратите внимание, что параметры $version$ и `$ qualifier $ ', указанные в wiki , заменяются во время создания / публикации метаданных, а не во время установки.

...