[ports] bsd.port.mk 的重大變革 II
上一篇其實變動的不止是 bsd.port.mk 啦,事實上 ports/Makefile 也有變,不過我懶的改了。
這篇主要想再加上跟 perl 有關的變動,ports/87318,這個 patch 加上了 PERL_RUN_DEPENDS 以及 PERL_BUILD_DEPENDS 兩個令人快樂的變數
看一下 pr 內附的範例:
BUILD_DEPENDS=
${SITE_PERL}/${PERL_ARCH}/Digest/MD5.pm:${PORTSDIR}/security/p5-Digest-MD5
${SITE_PERL}/MIME/Tools.pm:${PORTSDIR}/mail/p5-MIME-Tools
${SITE_PERL}/Time/Timezone.pm:${PORTSDIR}/devel/p5-Time-modules
${SITE_PERL}/${PERL_ARCH}/DBD/SQLite2.pm:${PORTSDIR}/databases/p5-DBD-SQLite2
${SITE_PERL}/${PERL_ARCH}/XML/Parser.pm:${PORTSDIR}/textproc/p5-XML-Parser
${SITE_PERL}/${PERL_ARCH}/Curses.pm:${PORTSDIR}/devel/p5-Curses
${SITE_PERL}/Curses/UI.pm:${PORTSDIR}/devel/p5-Curses-UI
${SITE_PERL}/Locale/TextDomain.pm:${PORTSDIR}/devel/p5-Locale-libintl
${SITE_PERL}/${PERL_ARCH}/Digest/MD5.pm:${PORTSDIR}/security/p5-Digest-MD5
${SITE_PERL}/MIME/Tools.pm:${PORTSDIR}/mail/p5-MIME-Tools
${SITE_PERL}/Time/Timezone.pm:${PORTSDIR}/devel/p5-Time-modules
${SITE_PERL}/${PERL_ARCH}/DBD/SQLite2.pm:${PORTSDIR}/databases/p5-DBD-SQLite2
${SITE_PERL}/${PERL_ARCH}/XML/Parser.pm:${PORTSDIR}/textproc/p5-XML-Parser
${SITE_PERL}/${PERL_ARCH}/Curses.pm:${PORTSDIR}/devel/p5-Curses
${SITE_PERL}/Curses/UI.pm:${PORTSDIR}/devel/p5-Curses-UI
${SITE_PERL}/Locale/TextDomain.pm:${PORTSDIR}/devel/p5-Locale-libintl
看到沒,裡面有的有 ${PERL_ARCH} ,有的沒有。這裡就先不管為什麼要有 PERL_ARCH 啦!重點是這樣很煩對不對 :p
既然煩,那就要消除它,就像有個好用的 @dirrmtry 一樣, edwin@ 也弄了個 PERL_{BUILD|RUN}_DEPENDS ,專門針對 dependency 裡有 perl module 的 ports 而出現的。
所以上面的可以改成
PERL_BUILD_DEPENDS=
Digest::MD5:${PORTSDIR}/security/p5-Digest-MD5
MIME::Tools:${PORTSDIR}/mail/p5-MIME-Tools
Time::Timezone:${PORTSDIR}/devel/p5-Time-modules
DBD::SQLite2:${PORTSDIR}/databases/p5-DBD-SQLite2
XML::Parser:${PORTSDIR}/textproc/p5-XML-Parser
Curses:${PORTSDIR}/devel/p5-Curses
Curses::UI:${PORTSDIR}/devel/p5-Curses-UI
Locale::TextDomain:${PORTSDIR}/devel/p5-Locale-libintl
Digest::MD5:${PORTSDIR}/security/p5-Digest-MD5
MIME::Tools:${PORTSDIR}/mail/p5-MIME-Tools
Time::Timezone:${PORTSDIR}/devel/p5-Time-modules
DBD::SQLite2:${PORTSDIR}/databases/p5-DBD-SQLite2
XML::Parser:${PORTSDIR}/textproc/p5-XML-Parser
Curses:${PORTSDIR}/devel/p5-Curses
Curses::UI:${PORTSDIR}/devel/p5-Curses-UI
Locale::TextDomain:${PORTSDIR}/devel/p5-Locale-libintl
這就可以不用管有沒有 PERL_ARCH 了,連 SITE_PERL 也不用寫,簡潔有力,帥!!!不過咧,原來的 {BUILD|RUN}_DEPENDS 裡就是使用 “:” 做項目的分隔,而 perl module 裡又是一堆 “::” ,為了怕眼花撩亂,所以最後的版本就是改用像在 portname 的方式,用 hyphen “-” 來做,最終版本:
PERL_BUILD_DEPENDS=
Digest-MD5:${PORTSDIR}/security/p5-Digest-MD5
MIME-Tools:${PORTSDIR}/mail/p5-MIME-Tools
Time-Timezone:${PORTSDIR}/devel/p5-Time-modules
DBD-SQLite2:${PORTSDIR}/databases/p5-DBD-SQLite2
XML-Parser:${PORTSDIR}/textproc/p5-XML-Parser
Curses:${PORTSDIR}/devel/p5-Curses
Curses-UI:${PORTSDIR}/devel/p5-Curses-UI
Locale-TextDomain:${PORTSDIR}/devel/p5-Locale-libintl
Digest-MD5:${PORTSDIR}/security/p5-Digest-MD5
MIME-Tools:${PORTSDIR}/mail/p5-MIME-Tools
Time-Timezone:${PORTSDIR}/devel/p5-Time-modules
DBD-SQLite2:${PORTSDIR}/databases/p5-DBD-SQLite2
XML-Parser:${PORTSDIR}/textproc/p5-XML-Parser
Curses:${PORTSDIR}/devel/p5-Curses
Curses-UI:${PORTSDIR}/devel/p5-Curses-UI
Locale-TextDomain:${PORTSDIR}/devel/p5-Locale-libintl
有 maintain p5-* 的你,換了嗎?記得在下次更新時一起更換哦。















二月 9th, 2006 at 9:14 am
這個好 :p