2014年7月28日月曜日

ふたたびFreeBSD 9.2でlang/ruby19のportupgradeに失敗する

FreeBSD 9.2でlang/ruby19(ruby-1.9.3.484_2,1→ruby-1.9.3.547,1)のportupgradeをすると以下のようなエラーで失敗しました。
pkg-static: Plist error, directory listed as a file: /usr/local/share/ri/1.9/system/fatal
前回と同様に検索エンジンで調べてみると同じページしか近いものはなさそうです
Ruby19 install/upgrade problem
https://forums.freebsd.org/viewtopic.php?f=5&t=46078
 が見つかります。回答:
I ran into this too, tracked down the cause, and submitted a PR with a patch to fix the problem: http://www.freebsd.org/cgi/query-pr.cgi?pr=ports/190066.
で参照されているパッチはそのままで適用できません。内容を少し見てみると、同様なパッチを作成すればよさそうです。
$ diff -u Makefile.ORG  Makefile
--- Makefile.ORG    2014-07-28 14:09:31.281245689 +0900
+++ Makefile    2014-07-28 14:12:23.899333635 +0900
@@ -229,10 +229,12 @@
 #
 # Add generated RI files to pkg-plist
 #
-    @${FIND} -ds ${RUBY_RIDIR}/ ! -type d ! -name created.rid | \
+    @${FIND} -ds ${STAGEDIR}${RUBY_RIDIR}/ ! -type d | \
         ${SED} 's,^${STAGEDIR}${PREFIX}/,,' >> ${TMPPLIST}
-    @${FIND} -ds ${RUBY_RIDIR}/ -type d -mindepth 1 | \
+    @${FIND} -ds ${STAGEDIR}${RUBY_RIDIR}/ -type d -mindepth 1 | \
         ${SED} -E -e 's,^${STAGEDIR}${PREFIX}/,@dirrm ,' >> ${TMPPLIST}
+    @${FIND} -ds ${STAGEDIR}${RUBY_SITERIDIR}/ ! -type d | \
+                ${SED} 's,^${STAGEDIR}${PREFIX}/,,' >> ${TMPPLIST}


$
これを適用してみるとportupgradeができるようになりました。