FreeBSD portsに自作パッチを作って充ててみる

llvm clang 3.5開発版をportsから入れようと思ったら

configure: error: Type int64_t required but not found

って言われた

Google先生に聞いたら以下のサイトが
http://blog.gmane.org/gmane.comp.compilers.llvm.devel/month=20040901/page=3

configure.acを修正すればいいんたけど、makeの段階でportsの中で展開されるので差分パッチを作って充ててみた

という流れで、clangとは関係なくports用にパッチを作って充てるやり方を書いてみる

distfileの展開ファイルの中にoriginal.txtがあると想定
まず、original.txtの差分を作る

cp original.txt new.txt
vi new.txt
編集して上書き
diff -Naru original.txt new.txt > /usr/ports/distfiles/my.patch

original.txtの内容はこんな感じ

text
original
text

new.txtの内容はこんな感じ

text
new
text

保存先には/usr/ports/distfilesを指定する

— original.txt yyyy-mm-dd hh:ii:ss.000000000 +0900
+++ new.txt yyyy-mm-dd hh:ii:ss.000000000 +0900
@@ -1,3 +1,3 @@
text
-original
+new
text

-は削除される場所
+は追加される場所

1行目のoriginal.txtと2行目のnew.txtにパスを書く
/usr/ports/カテゴリ/パッケージ名/work/から先のみを書く
PHPであれば
/usr/ports/lang/php/work/php-バージョン名/original.txt
こんな感じ

修正後

— php-バージョン名/original.txt yyyy-mm-dd hh:ii:ss.000000000 +0900
+++ php-バージョン名/new.txt yyyy-mm-dd hh:ii:ss.000000000 +0900
@@ -1,3 +1,3 @@
text
-original
+new
text

尚、当然ですがPHPにoriginal.txtなんてないので悪しからず

続いてMakefile.localを作る

PATCHFILES += my.patch
PATCH_DIST_STRIP = -p1
NO_CHECKSUM = yes

PACHFILESに差分を作る時に/usr/ports/distfilesに作ってパッチファイル名を指定する

makeしてみる
作業ディレクトリの中に入って該当ファイルを見て該当箇所を見てみる
修正されていたら成功

Leave a Reply

Your email address will not be published. Required fields are marked *

*

This site uses Akismet to reduce spam. Learn how your comment data is processed.