[閒聊] Test build pttbbs on Debian Bullseye

作者: holishing   2021-02-22 01:13:35
因為偷瞄 telnet ptt.cc 22 的版號資訊猜 pttbbs 系統還在 Debian Buster (10)
沒偷跑到 testing (bullseye)
而 bullseye (11) 已經進入 Soft Freeze 了
https://wiki.debian.org/DebianBullseye
於是就讓我們從粗略的方法來看將 pttbbs 程式移植到新系統可能有哪些
細節需要確認處理
目前是將容器的 base image 換成 bullseye 來測試
概略心得記錄如下:
1. openresty 還沒提供給 bullseye 的版本
如果 bbs server 和 websocket server 環境是分開來的可能還好
但我就不會分:p 而且也懶得找他們的套件打包腳本了...
結果發現硬裝 buster repository 的 openresty 也沒什麼問題
( 他自己一堆函式庫像是 openssl 都另外命名自己再裝一次了,
如此疊床架屋還有相依性問題也太慘? )
2021/9/8 更新:已提供預編譯套件給 Bullseye 用了
2. bmake 從 20160220 升級到 20200710 版 (雖然最新已經到 202102XX 了)
然後發現一堆 bsd.*.mk 的 rule 竟然都不能用了?
只好先忍痛 alias bmake="bmake -m /usr/share/bmake/mk-netbsd/" 後
再繼續奮鬥下去了, 本來以爲 bmake install 會跟 Arch 一樣踩到雷但
現在看起來還沒事?
結果發現以下 Bug Report 解釋了來龍去脈:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=823185
Debian Bug #823185 指出新版 bmake 指令預設不再提供舊版 bsd.*.mk 規則供利用,
若有需求(編譯本專案程式碼者), 請使用傳統 pmake 指令 (套件維護者已協助將指令導
向至 bmake -m /usr/share/bmake/mk-netbsd)
然後 Arch, Fedora 的 bmake 就直接把 bsd.<name>.mk symlink 到 <name>.mk
所以雖然 pttbbs Makefile 引用的 bsd.*.mk 還能動, 但到 bmake install 時
就炸了
2021/9/8 更新:目前建議在 Debian Bullseye 下使用 pmake 指令以便使用傳統
bsd.<name>.mk 檔案
3. multiple definition caught on clang 11
本來想說想辦法加個 -fcommon ? (類似讓 gcc 10 高興一樣的感覺 (
但還是不確定這個有沒有關, 加上只要刪掉三行就可以過了
所以還是生了個 patch 來代替
https://github.com/bbsdocker/imageptt/blob/87c0ec3/multipledef.patch
之後再看怎麼處理
其他需要自行解讀的細節細節見:
https://github.com/bbsdocker/imageptt/actions
如果板友有更好更可信的測試方法,歡迎分享
ps. 待發 PR
作者: pichubaby (Pichu)   2021-02-22 18:34:00
目前Buster的LTS支援應該是到2024年?
作者: TsaoCCFGOGO (書唸累時,就算數學吧)   2021-07-08 13:49:00
推,有空也會測試。
作者: holishing   2021-07-20 05:54:00
好!

Links booklink

Contact Us: admin [ a t ] ucptt.com