karubabuの日記

タイトルに解決と書いているものがあるけれど、別に付いていない物は解決していないというわけではないです。つまるところ記事を書いた後に解決してちょっと嬉しかったので付けました。

88x2buドライバのebuildを書いた時にめっちゃ困ったところ

公式docを読んだら完全に解決したし持つべきものは友と公式docなんだなあ
あらためてそうおもいました

src_prepare()は中身を弄ったらeapply_userが必要になる

EAPI Usage and Description – Gentoo Development Guide

The eapply_user command permits the package manager to apply user-provided patches. It must be called from every src_prepare function.
Note:eapply_user doesn't need to be called explicitly when default src_prepare is called.

これどういうことなのか良くわからなくて無限に文句を言われました…(公式docを読めていない)
標準のsrc_prepareを呼ぶのなら要らないよ!の意味が分かっていなかった
src_prepare()を書き加えたらeapply_userをsrc_prepare()の適当なところに足そう

MODULE_NAMESの書き方

Installing ${modulename} module" cd ${objdir} || die "${objdir} does not exist

とか言われたらこれが間違っている可能性が高いと思う
Gentoo Development Guide: linux-mod.eclass
modulenameは兎も角、libdir, srcdir, objdirがよくわからなくて詰った
基本的にはlibdirだけを自分で書いてsrcdirは${S}に(つまりデフォルトのままで良い)して、objdirもそのまま(つまりsrcdirと同じ)で問題なかった
色々なmoduleのebuildを見て回ったけれど基本的にこれだしアンパイがこれそう

おわり

問題なくemergeが通る様になるとemerge -av @module-rebuildに88x2buのパッケージが並ぶ様になる
これで毎回手動make installする必要がなくなっていいわねー🤗
gentoo-overlay/rtl88x2bu-9999.ebuild at master · karubabu/gentoo-overlay · GitHub
☝️(´・ω・`)書いたやつはこれなので"こうすると後々何か起きた時に分かりやすいよ"とか"こっちの方がええで"的なサムシングくれるイケメンはください!