不過,除了 FreeBSD 4.x 本身要退休了,令我高興的是,FreeBSD 4.x 內建的 Perl 5.005_03 也要退休了。
Perl 在 1998.09.09 正式進入了 FreeBSD 3.0 的 base system,陪伴著 FreeBSD developers 經過了三年半的時光,然後在 2002.05.16 從 base system 中被移除。將 Perl 搭載於作業系統之中一直存在著兩極的反應:支持者覺得這是個非常好用的開發工具,強力推薦保留於系統之中;反對者則表示應該要將作業系統和開發工具切開,以免為了編譯 Perl 而大幅拉長 make world 時間。從 FreeBSD 5.0 開始的 Perl 一律由 ports 安裝,所以也從 FreeBSD 5.x 開始,我學著用比較「樸素」的一點的 awk, sed, grep 去完成原本「華麗」的 perl 所執行的工作,以確保程式能在不需要額外安裝套件的環境下執行。
由於 Perl 5.005_03 仍然存在 FreeBSD 4.x 之中,因此在 FreeBSD 4.x 依然支援的情況下,perl@FreeBSD.org 就得繼續支援 Perl 5.005_03。也許很難以想像,讓系統支援七八年前的 Perl 5.005_03 有時候是一件痛苦的事情。因為 our,因為 warnings,因為 thread,因為 utf8…,種種的原因讓 Perl 5.005_03 越來越難在現有的平台上編譯。
因此有的 MAINTAINER 會放上這麼一行,叫你自己升級:
.if ${PERL_LEVEL} < 500600
IGNORE= requires Perl 5.6 or newer. Install lang/perl5.8 and try again
.endif
有的則是很辛苦的修掉拉哩拉匝的宣告,只求能執行:
.if ${PERL_LEVEL} < 500600
post-patch:
${PERL} -pi -e 's/^our (Ww+);/use vars q($$1);/o;'
-e 's/^ours+(Ww+)(?!;)/use vars q($$1); $$1/o;'
-e 'undef $$_ if /^s*(no|use) warnings/o;'
${WRKSRC}/GCrypt.pm ${WRKSRC}/Makefile.PL
.endif
.include
終於,這些 dirty hack 都可以退休了。我那測試專用的 4.11-RELEASE 的 isoroot 也可以砍掉囉~
0 意見:
張貼意見