MacPortsに入っているFreeRDPが1.1系で古かったので、最新の2.0.0-rc1に更新してみました。FreeBSD portsのアップデートpatchを作るというのは日常的にやっているので、その
大体こんな流れ。
最初の2つは1回きりで手元にリポジトリを持っていれば省略できるので、適当に。
まずはMacPortsのチケット検索ページから、当該portのアップデートリクエスト等のチケットがないか確認します。あれば、後でコミットするときに「このチケットの作業やっといたよ」とコミットメッセージに書くためにURLを控えておきます。
次にPortfileをいじります。Portfileの書き方はFreeBSD portsのMakefileとは全然違うものの、FreeBSD portsに慣れていればなんとなく雰囲気でわかりました。ちょっと手こずったのが、FreeBSD portsの make makesum
のような tarball のチェックサムを自動的に生成する手段がない(?)ところ。
もしかしたらあるのかもしれませんが、OpenSSLで2種類のチェックサムを生成して手でPortfileに書き込みました。
openssl dgst -rmd160 FreeRDP-2.0.0-rc1.tar.gz
openssl dgst -sha256 FreeRDP-2.0.0-rc1.tar.gz
コミットメッセージはガイドラインに沿うように。 そんなこんなで出来上がったのがこちらのコミット。とりあえず見様見真似。
そしてPull Requestを作成。
Pull Requestにテンプレートがあって、以下のコマンドでテストしたMacの環境を添えます。
echo "macOS $(sw_vers -productVersion) $(sw_vers -buildVersion)"; echo "Xcode $(xcodebuild -version | awk '{print $NF}' | tr '\n' ' ')"
他にも、
port lint
コマンドで文法チェックをしたかsudo port test
コマンドでテストを実行したか(テストがある場合)sudo port -vst install
でインストールのテストをしたかといった項目の確認をします。Tracチケットがなかった場合、わざわざ作る必要はないのですがうっかり作ってしまいました。うっかり作ったとはいえ、チケットを作ってしまったのでチケットのURLをコミットメッセージに含めました。
とりあえずここまで。提出したPull Requestがマージされるのか、それとも修正を求められるのか、とりあえず見守ります。野良portsとしてのビルドはご自由に。
無事にマージされました。いくつか指摘があって、
という変更が必要でしたが、大きな変更ではありませんでした。
FreeRDP 2.0系ではMacとの互換性も向上していて、以前はPulseAudioを経由しないと音が出せなかったのがMacのネイティブオーディオをサポートしたため必要なくなったというのがvariantを削除した理由です。