[Review Board] 設定 Perforce 檔案庫時,出現 P4 not installed 錯誤訊息
今天想要把 Review Board 加上 Perforce 的支援,
不過奇怪的是,只要 CVS 的類型選擇 Perforce 儲存之後,
就會出現 The Python module “P4” is not installed 的錯誤訊息:
這個 P4 模組是什麼東西呢?
上網查了一下,資訊不算很多,
不過有查到 p4python 這個關鍵字。
看起來是缺少了 p4python 這個 python 模組…
修改 Dockerfile,在 docker image 中用 pip 安裝 p4python 模組,
接著重新啟動 docker container…
怎麼還是一樣的錯誤??
看了一下 reviewboard.log,並沒有什麼相關的訊息可以參考…
試著直接在 python 中 import P4,
結果出現奇怪的錯誤訊息,說找不到 SSL_library_init:
>>> import P4 /opt/venv/local/lib/python2.7/P4API.so: undefined symbol: SSL_library_init
再查了一下,似乎是 p4python 跟最新版本的 libssl 有一些相容性問題,
但目前還沒有新版的 p4python 可以解決。
有人說可以自己重編譯 p4python,不過這樣工程有點浩大…
後來試出一個方法~
pip 預設安裝的 p4python 是 2018.2.1743033 版本,
到 Pypi 的官網上看,它前一版是 2017.2.1615960,
於是用 pip 改安裝這一版看看:
pip install p4python==2017.2.1615960
結果,問題就消失了!
可能是舊版的 p4python 不會去使用到 libssl 的那個 API 吧?
不過這個解法不曉得會不會在 libssl 升級之後,
又出現別的問題囉~
參考資料:
Unable to add Perforce Repo. – Google Groups
P4Python undefined symbol SSL_library_init – APIs – Perforce Forums
Installing p4python on Fedora Core 29 – APIs – Perforce Forums
Bitnami Review Board Stack-Add Repository Issue(with Perforce) – General – Bitnami Community