はじめに
こんにちは。MinGWのパッケージをアップデートしたので記事にします。
どうしてMinGWのパッケージのアップデートしなきゃならないの?
パッケージマネージャーって、みんな利用していると思うんですけど、そのメンテナンスに関わったことがある人は意外と少ないと思います。私もMinGWのパッケージをアップデートするのははじめてです。
1年程前から趣味と実益を兼ねてRuby向けのグラフ描出ソフトGR.rbを作っています。
GR.rbはlibgr
のバインディングです。私は普段Windowsを使っていません。しかし、ありがたいことに是非Windowsに対応してほしいという要望があって、詳しい方にPKGBUILDの作成からMinGWにlibgrのパッケージ登録まで全部やって頂きました。
それから少し時間が流れて、本家libgrのバージョンも少しずつ上がっていくので、そろそろアップデートしないといけないなと思い、重い腰を上げて 0.50.0 → 0.51.2 にアップデートしました。
MingGWのパッケージのアップデート、結果的には難しくなかったのですが、MinGWのパッケージをアップデートした日本語の体験記事が全然なくてとても心細い思いをしました。誰かの役に立つようにQiita記事を書きます。
やり方
基本的な方法はhomebrewなどと変わりません。
MSYS2公式ページ
https://www.msys2.org/wiki/Creating-Packages/
に必要な情報が載っていますので、Google翻訳などを使ってざっと目を通すと良いと思われます。
pacmanアップデート
pacman -Syu
一応作業に入る前にパッケージ群をアップデートしておきましょう。
git clone
あとから origin
を変更してもいいのですが、最初からForkしてしまった方が作業が楽ですね。
git clone https://github.com/kojix2/MINGW-packages # kojix2を各自のidに変更
cd MINGW-packages/mingw-w64-gr
PKGBUILDの編集
パッケージのバージョン番号を更新します。
pkgver=0.51.2
ソースコード tar.gz
ファイル のsha256sumを更新します。
sha256sum はWindowsの場合、右クリック->プロパティ->ハッシュ のタブを開いてコピーします。
sha256sums=("E6A3D0ED911F6E59CC2293B5694EE18A0620849E666143870A9EDA71C02BB833")
また、今回は、前回適応されていたパッチが不要のようだったので取り除きました。
ビルドとインストール
i686もビルドする場合は以下。
pacman -S mingw-w64-i686-toolchain
そして
MINGW_ARCH=mingw64 makepkg-mingw -sLf
pacman -U mingw-w64-*-gr-*-any.pkg.tar.xst
でできます。
プルリクエストを送る
大丈夫そうだったらブランチを切ってプルリクエストを送りましょう。
忘れずに
git pull --rebase
ブランチの名前はなんでも良さそうですが、gr-0.51.2
としました。update-gr
とかでも大丈夫です。
プルリクエストのコミットは、皆さん大文字、小文字が入り乱れていますが、
gr: Update to 0.51.2
もしくは gr: update to 0.51.2
とすればよいようです。
プルリクエストを提出したら、ちゃんとCIが通過しているか確認しましょう。
通過していればメンテナンスをされている方がチェックしてマージしてくれるはずです。
今回のPRは数時間のうちに無事にmergeされました。かなり活発にメンテナンスが行われているようです。
おわりに
MinGWもバージョンをアップデートするだけなら怖くない!
この記事は以上です。