Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

PVA/SPVA: track SPVA version independently and move XDG keychain dir pva/<ver> -> spva/<n.n.n>

オープン 初心者向け
#3,865 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 2 日以内に返信

まだ誰も着手していません。

評価

難易度
2/5
見積もり時間
1〜3時間
初心者へのやさしさ
65/100
issue の種類
機能追加
明瞭さ
明確に書かれている
活発さ
静か
技術スタック
java
領域
security

調査の方向性

core/pva/src/main/java/org/epics/pva/PVASettings.javaから始めて、バージョン定数とTLSキーチェーンの自動検出パスを確認してください。ハードコードされたバージョンをSPVAのバージョンに変更し、検出にはspva/<version>を使用して、PVXS側の正式なバージョンと値を一致させてください。Javaの検出が新しいディレクトリを使用し、issueで推奨されているように、従来のpva/<version>パスにフォールバックできれば完了です。

索引モデルが issue の本文から書いたものです。

説明

Summary

In the Secure PVAccess (SPVA) line of work, the SPVA release version is being decoupled from the PVXS library version. On the C++ side (PVXS / PVACMS) the SPVA version becomes a separately-tracked number, and the well-known TLS keychain directory changes from pva/<pvxs-version> to spva/<spva-version>.

Phoebus's core/pva/ is an independent Java PVA implementation and does not link the C++ PVXS code, so it cannot consume that version programmatically. It must hard-code the SPVA version (as it already hard-codes the PVA version today) and keep it in sync by hand.

Current behaviour

core/pva/src/main/java/org/epics/pva/PVASettings.java:

// Hard-coded, documented as "Matches PVXS versionString()"
private static final String PVA_VERSION = "1.5";

// Well-known TLS keychain auto-discovery location:
//   <xdg_config_home>/pva/<PVA_VERSION>/<filename>
final String path = config_home + File.separator + "pva"
                  + File.separator + PVA_VERSION
                  + File.separator + filename;

Used to auto-discover server.p12 and client.p12 under ~/.config/pva/1.5/ when EPICS_PVA(S)_TLS_KEYCHAIN is unset, mirroring the PVXS config.cpp fallback.

Requested changes

  1. Replace the PVXS-derived PVA_VERSION with a hard-coded SPVA version constant (e.g. SPVA_VERSION), documented as manually mirroring the authoritative PVXS-side SPVA version, with a comment pointing at that source so the two stay in lockstep per SPVA release.

  2. Change keychain auto-discovery from pva/<PVA_VERSION> to spva/<SPVA_VERSION>:

    • ~/.config/spva/<n.n.n>/server.p12
    • ~/.config/spva/<n.n.n>/client.p12

    (literal pva -> spva, and the version source changes from PVXS major.minor to the SPVA n.n.n.)

Scope / interop notes

  • Java side uses only the config home path here (keychain discovery); there is no data-home / cert-DB usage, unlike the C++ tooling.
  • The directory must match whatever PVXS / PVACMS adopt, or the Java client and C++ tools will look in different places for shared keychains. Recommend the same migration behaviour on all sides: fall back to the legacy pva/<ver> path when the new spva/<n.n.n> one is absent, so existing deployments keep working.

Context

This is the Phoebus-side counterpart of the SPVA version-tracking change being made in the PVXS and PVACMS repositories; those define the authoritative SPVA version and the spva/<n.n.n> convention. Phoebus tracks the same value by hand.

主要言語
Java
スター
130
フォーク
132
平均マージ
3日 1時間
マージ済み PR(30日)
24

環境構築

  • Dockerfile・Docker Compose ファイルなし
  • プルリクエストのテンプレートあり
  • コントリビューションガイドなし

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

ControlSystemStudio/phoebus のほかの issue

ControlSystemStudio/phoebus の issue をすべて見る

似ている issue

Java の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。