FreeBSD/i386 6.0-RELEASE Release Notes The FreeBSD Project Copyright c 2000、2001、2002、2003、2004、2005 The FreeBSD Documentation Project ¥ 原文:http://www.freebsd.org/releases/6.0R/relnotes-i386.html ¥ 勝手に訳したものです。誤りなどありましたら ¥ you_at_pohwa.adam.ne.jp(_at_を@に置換)までお知らせください。 ¥ 全角の「¥」はコメント、2つ連続した「¥¥」は意味が取れなかった部分です。 FreeBSDは FreeBSD Foundationのregistered trademark です。 IBM、AIX、EtherJet、Netfinity、OS/2、PowerPC、PS/2、S/390、ThinkPadは、米国およびその他国におけるInternational Business Machines Corporation のtrademarkです。 IEEE、POSIX、802は米国におけるElectrical and Electronics Engineers、Inc. のregistered trademarkです。 Intel、Celeron、EtherExpress、i386、i486、Itanium、Pentium、Xeonは、米国およびその他国におけるIntel Corporation ないし関連企業のtrademarkです。 Sparc、Sparc64、SPARCEngine、UltraSPARCは、米国およびその他国におけるSPARC International、Inc のtrademarkで、SPARCのtrademarkに関連する製品はSun Microsystems、Inc. によって開発されたアーキテクチャに基づいています。 製造元および販売元が製品の判別に用いる呼称は、その多くがtrademarkとなっています。それらの名称をこのドキュメントに用いる場合、FreeBSD Project がtrademarkであることを承知していれば、呼称の後に「?」もしくは「R」マークをつけます。 FreeBSD 6.0-RELEASE のリリースノートには、6-STABLE開発ラインにおけるFreeBSD base system への変更の要約が含まれています。このドキュメントには、前回のリリースより後に公開された、今回のリリースに関わりのあるセキュリティアドバイザリや、FreeBSD kernel ないしuserlandへの重要な変更について、一覧を掲載しています。アップグレードに関して簡単な説明を併記しているものもあります。 1 Introduction このドキュメントは、i386プラットフォーム向けのFreeBSD 6.0-RELEASE に関するリリースノートです。新たに追加・変更・削除された機能について説明します。古いバージョンからのアップグレードに関する注意点も一部掲載しています。 FreeBSD 6.0-RELEASEはrelease distribution です。ftp://ftp.FreeBSD.org/およびミラーサイトにて入手できます。この(もしくはそれ以外の)FreeBSD release distributions 入手に関する詳細は、FreeBSD Handbook の付録「Obtaining FreeBSD」を参照してください。 すべてのユーザーに対し、インストール前にrelease errata を参照することを推奨します。エラッタドキュメントには「新情報」(リリースサイクルの後期もしくはリリース後に発表されたもの)が含まれています。とくに、既知のバグ、セキュリティアドバイザリ、ドキュメントの訂正などの情報です。FreeBSD 6.0-RELEASE のエラッタドキュメント最新版は、FreeBSD Web site にて入手できます。 2 What's New このセクションでは5.4-RELEASEからの変更のうち、ユーザから見てもっとも目立つものを説明します。全般に、[MERGED]と明記されているものを除いて、このドキュメント¥here¥で説明する変更点は6-STABLEブランチに固有のものです。 ドキュメントの項目は、5.4-RELEASE以降に公開されたセキュリティアドバイザリ、新規のドライバもしくはハードウェアサポート、新規のコマンドもしくはオプション、大きなバグフィックス、同梱ソフトのアップグレードなどです。ports/packagesへの大きな変更や、リリースエンジニアリングの¥practices¥実装も一部列挙しています。前回リリースからの変更点を網羅することは不可能なので、このドキュメントでは、セキュリティドバイザリ、ユーザーから見て目立つ変更、アーキテクチャの大きな変更などに的を絞る立場をとっています。 2.1 Security Advisories fetch(1)ユーティリティのバグ(悪意あるHTTPサーバがクライアントのメモリの任意の部分を上書きできる)が修正された。詳細はsecurity advisory FreeBSD-SA-04:16.fetch を参照。[MERGED] procfs(5)とlinprocfs(5)のバグ(悪意あるローカルユーザーがカーネルメモリの一部を読み取ることができる、もしくはローカルDoSアタックによってシステムパニックを引き起こすことができる)が修正された。詳細はsecurity advisory FreeBSD-SA-04:17.procfs を参照。[MERGED] TELNETにおける2つのバッファオーバーフローが修正された。悪意あるTELNETサーバもしくはactive network attacker がtelnet(1)を実行しているユーザー権限で任意のコードを実行できるというもの。詳細はsecurity advisory FreeBSD-SA-05:01.telnet を参照。[MERGED] sendfile(2)システムコールにおいて情報が漏洩する脆弱性(カーネルメモリのランダムな一部分を読み取り可能にする)が修正された。詳細はsecurity advisory FreeBSD-SA-05:02.sendfile を参照。[MERGED] SIOCGIFCONFのioctl(2)で情報が漏洩する脆弱性(カーネルメモリのうち12バイトが漏洩する)が修正された。詳細はsecurity advisory FreeBSD-SA-05:04.ifconf. [MERGED] を参照。[MERGED] cvs(1)における複数のプログラムミス(CVSサーバーを実行しているユーザーの権限で任意のコードを実行できる可能性がある)が修正された。詳細はsecurity advisory FreeBSD-SA-05:05.cvs を参照。[MERGED] /dev/iirデバイスのデフォルトパーミッション修正ミス(権限のないローカルユーザが、iir(4)がサポートするハードウェアにコマンドを送信できる)が修正された。詳細はsecurity advisory FreeBSD-SA-05:06.iir を参照。[MERGED] i386_get_ldt(2)のvalidationバグ(カーネルメモリの内容をユーザープロセスに漏洩する場合がある)が修正された。詳細はsecurity advisory FreeBSD-SA-05:07.ldt を参照。[MERGED] カーネル内の情報漏洩に関する脆弱性が複数修正された。詳細はsecurity advisory FreeBSD-SA-05:08.kmem を参照。[MERGED] Hyper-Threading Technology (HTT)を利用したプロセッサにおいて情報が漏洩する脆弱性への対応として、sysctl machdep.hyperthreading_allowed が追加された。FreeBSD CURRENT におけるデフォルト値は1 (HTT enabled) で、4-STABLEと5-STABLEのdevelopmentブランチ、security fix ブランチでのデフォルト値は0 (HTT disabled)。詳細はsecurity advisory FreeBSD-SA-05:09.htt を参照。[MERGED] tcpdump(1)ユーティリティのバグ(悪意あるリモートユーザーが、特殊なパケットによってDoSを引き起こせる)が修正された。詳細はsecurity advisory FreeBSD-SA-05:10.tcpdump を参照。[MERGED] gzip(1)ユーティリティの問題2つが修正された。ローカルユーザーが、ファイルの展開時に、任意のファイルのパーミッションを変更あるいは内容を上書きできるというもの。詳細はsecurity advisory FreeBSD-SA-05:11.gzip を参照。[MERGED] BIND 9 DNSSEC のバグが修正された。DNSSECが有効になっていると、リモートの攻撃者が特殊なパケットのインジェクションによりnamed(8)をterminateさせられる場合があるというもの。詳細はsecurity advisory FreeBSD-SA-05:12.bind9 を参照。[MERGED] ipfw(4)のバグ(ルックアップテーブルの設定に反して、間違ったパケットにmatcheしてしまうことがある)が修正された。このバグはカーネルオプションPREEMPTIONSMPを有効にしたSMPマシンもしくはUPマシンにのみ影響する。詳細はsecurity advisory FreeBSD-SA-05:13.ipfw を参照。[MERGED] bzip2(1)におけるセキュリティ問題2つが修正された。DoSの可能性と認証なしでのファイルパーミッション操作に関するものを含んでいる。詳細はsecurity advisory FreeBSD-SA-05:14.bzip2 を参照。[MERGED] FreeBSD's TCP stack における問題2つが修正された。攻撃者が、既存のTCPコネクションをスタックさせてDoS状態を作り出せるというもの。詳細はsecurity advisory FreeBSD-SA-05:15.tcp を参照。[MERGED] 2.2 Kernel Changes 80386プロセッサのサポート(I386_CPUカーネルのコンフィグオプション)が削除された。これ以前のCPUを使用するユーザーはFreeBSD 5.X 以前を利用する必要がある。 カーネルデバッガddb(4)がshow alllocks コマンド(スリープミューテックス(もしくは、現在のスレッドに対するスピンミューテックス)を保持しているプロセスとスレッドのリストをダンプする)をサポートした。[MERGED]¥¥¥ 大容量メモリ(4GB以上)をサポートするために、カーネルのクラッシュダンプフォーマットがELFに変更された。 ichsmb(4)ドライバがカーネルモジュールとして読み込み可能になった。 jail(8)がsysctl security.jail.chflags_allowed (jail内でのchflags(1) の振る舞いを制御するためのもの)をサポートした。0(デフォルト)を指定すると、jailされたrootユーザーには権限を認めないが、1を指定すると、jailされたrootユーザーをjailされていないrootユーザーと同等に扱う。[MERGED] sysctl security.jail.getfsstatroot_only がsecurity.jail.enforce_statfs に名前変更され、今後は以下のポリシーを採用する Value Policy 0 制限のかかっていないマウントポイントをすべて見せる。 1 jailのchroot下にあるマウントポイントだけを見せ、マウントポイントのpathも一部しか見せない(たとえば、jailのchrootディレクトリが/jails/fooでマウントポイントが/jails/foo/usr/homeであれば、/usr/homeとだけ表示される) 2 jailのchrootディレクトリが置かれたマウントポイントだけを見せる。 loader tunable debug.mpsafevm がデフォルトで有効になった。[MERGED] memguard(9)(「tamper-after-free」機構¥¥の検出を助けるために設計されたカーネルメモリアロケーター)が追加された。DEBUG_MEMGUARDオプションによって明示的に有効にする必要があり、カーネルにも小規模な調整が必要。主にカーネル開発者が利用するためのもの。 struct ifnet とネットワークインターフェイスAPIが変更された。ABI互換性のため、FreeBSD base system にないすべてのドライバは、アップグレードしないと新しいAPIを利用できない。¥アップグレード後にコンパイルしなおさないと、の意味かもしれないが不明瞭¥ ULE scheduler のバグがいくつか修正された。[MERGED] Fine-grained lock(VFSスタックをGiant lock せずに実行するためのもの)が追加された。alpha、amd64、i386アーキテクチャではデフォルトで有効になっており、loaderの設定(とsysctlの環境変数)でdebug.mpsafevfsを0にすれば無効になる。 Inter-Processor Interrupt (IPI) ハンドリングのバグ(SMPシステムが、高負荷時にクラッシュする)が修正された。詳細はerrata note FreeBSD-EN-05:03.ipi を参照。[MERGED] Mandatory Access Control (とくにmac_biba(4)、mac_mls(4)、mac_stub(4)、mac_test(4))用に、System V IPC オブジェクト(メッセージキュー、セマフォ、シェアードメモリ)がサポートされた。 レガシーPCIブリッジ用のメモリアロケーションが、RAMを32MBまでに制限された。レガシーなブリッジ(古い製品の多く)は、この範囲内でしかアロケーションを許されない。この変更はBIOSによってメモリアサインされないデバイスにのみ影響する。この変更によりCardBusブリッジ(pccbb(4))の「bad Vcc」エラーが修正される。[MERGED] sysctl(3) MIBを「debug」モードで開始するために、カーネルオプションSYSCTL_DEBUGが必要になった。このオプションはデフォルトで無効になっている。¥¥ generic tty(4) ドライバインターフェイスが追加されたほか、cx(4) ({tty,cua}x)、cy(4) ({tty,cua}c)、digi(4) ({tty,cua}D)、rc(4) ({tty,cua}m)、rp(4) ({tty,cua}R)、sab(4) ({tty,cua}z)、si(4) ({tty,cua}A)、sio(4) ({tty,cua}d)、sx ({tty,cua}G)、uart(4) ({tty,cua}u)、ubser(4) ({tty,cua}y)、ucom(4) ({tty,cua}U)、and ucycom(4) ({tty,cua}y)など多くのデバイスドライバが書き直された。/etc/remoteと/etc/ttysもアップデートされているので注意。 vkbd(4)ドライバが追加された。ソフトウェアにループバック機構を提供する(ターミナルに対するpty(4)ドライバのように、仮想ATキーボードの実装を可能にする)もの。 FreeBSDが、uni-processorシステムでも常にローカルAPICタイマーを使うようになった。 i386とia64において、デフォルトのHZパラメータ(さまざまなカーネルタイマーを制御している)が100から1000に増やされた。他のシステムクロックとの同期を効率化するため、amd64では1024から1000に減らされている。 シェルコマンドの最大長が128byteからPAGE_SIZEに変更された。デフォルトでは、4KB(i386、pc98、amd64、powerpc)または8KB(sparc64、ia64)。この影響で、カーネルにおけるデータストラクチャーの変化に追従するために、コンパチビリティモジュールをリビルドする必要がある。 tunable vm.blacklistが追加された。スペースもしくはカンマで区切られた物理アドレスのリストを保持するためのもの。ここにリストアップされた物理アドレスを含むページはフリーリストには登録されず、FreeBSD VM システムによる無視が効率化される。無視するページの物理アドレスは、メッセージバッファにもリストされる。¥¥ 2.2.1 Boot Loader Changes boot0のserial console-capable なバージョンが追加された。boot0cfg(8)を使ってディスクに書き込み、-bオプションの引数として/boot/boot0sioを指定する。 cdbootが、いくつかのシステムでUSB CDROM ドライブからのブート時に発生するBIOSの問題に対応した。 autoboot loader commandがプロンプトパラメータをサポートした。 環境変数autoboot_delayを-1に設定することで、autoboot loader commandがユーザーによるブートプロセスへの割り込みを一切受け付けないようになった。[MERGED] hint.atkbd.0.flags=0x1を設定するloader menu option が追加された。これを設定することで、PS/2キーボードが接続されていても、USBキーボードを有効にできる。 beastieのboot menu がデフォルトで無効になった。¥訳注:/boot/loader.confでloader_logo="beastie"とすれば有効になる¥ 2.2.2 Hardware Support acpi(4)ドライバが、ACPIデバイスとPCIデバイスの電源を落としたり、省電力モードにしたり、レジューム時に復帰させたりできるようになった。この機能はdebug.acpi.do_powerstate sysctl とhw.pci.do_powerstate sysctl を0にすることで停止できる。 IBM laptop 用のacpi_ibm(4)ドライバが追加された。さまざまなホットキーを提供し、ファンの状態や温度センサーを読み取るというもの。 Fujitsu laptop のacpi(4)-controlled button用に、acpi_fujitsu(4)ドライバが追加された。 acpi_sonyドライバ(Sony laptop のSony Notebook Controllerをサポートしている)が追加された。 atkbdc(4)、atkbd(4)、psm(4)ドライバが、バスへの依存を減らす方法で書き直された(sparc64プラットフォームのEBusをサポートした)。 柔軟なプロセッサ速度管理のためのプラットフォームが追加された。プロセッサの速度を調整することで、各ドライバに、CPUパワーの利用を制御する手段を提供する。詳細はcpufreq(4) manual page を参照。[MERGED] 現在サポートしているドライバは、ichss (Intel SpeedStep for ICH)、acpi_perf (ACPI CPU performance states)、and acpi_throttle (ACPI CPU throttling) など。acpi_perfとacpi_throttleはacpi(4)ドライバに含まれている。device hintをhint.ichss.0.disabled="1"などと設定することで個別に無効にできる。 crypto(9)サブシステムがVIA C3 プロセッサのPadLock Security Co-processor をサポートした。 hwpmc(4)ハードウェア パフォーマンス モニタリング センター ドライバ が追加された。比較的新しいCPUにおけるハードウェア パフォーマンス モニタリング 機能を仮想化し、ユーザーレベルのプロセスからの利用をサポートするというもの。詳細はhwpmc(4)、関連ライブラリ、関連ユーザーランドユーティリティのmanual page を参照。 OLDCARDサブシステムのサポートが削除された。今後は、すべてのPCCARDデバイスのサポートにNEWCARDシステムを利用する。 GPIB-PCIIA IEEE-488 カードをサポートするためのpciiドライバが追加された。[MERGED] atkbd(4)ドライバが、0x8 (bit 3)フラグをサポートし、device probe 時にkeyboard port のテスト(いくつかのマシン、とくにCompaq R3000Z シリーズのamd64 laptop でハングアップを引き起こすことがある)を無効にできるようにした。 pbio(4)ドライバ(mode 0 (simple I/O) で動いているIntel 8255A programmable peripheral interface (PPI) チップへの直接アクセスをサポートする)を追加した。 Synaptics Touchpad ユーザー向けに、psm(4)ドライバのサポートが改善された。低速動作のトラッキングが向上し、追加のボタンおよびダイヤルを多数サポートした。これらの機能はsysctl variable のhw.psm.synaptics.* hierarchy で調整できる。 syscons(4)が、VESA (15、16、24、and 32 bit) モードをサポートした。この機能を有効にするには、2つのカーネルオプションSC_PIXEL_MODEとVESA(と、関連するカーネルモジュール)が必要になる。 uftdi(4)ドライバが、FTDI FT2232C チップをサポートした。 uplcom(4)ドライバが、CTS signal の扱いをサポートした。 ehci(4)ドライバが、改善された。 2.2.2.1 Multimedia Support snd_csa(4)ドライバが、サスペンドとレジュームの操作をサポートした。 uaudio(4)ドライバに、より多数のインプットに対するボリュームコントロールや、単一のデバイスからの録音など、いくつかの機能が追加された。[MERGED] 2.2.2.2 Network Interface Support ath(4)ドライバがアップデートされ、転送レート制御アルゴリズムを別モジュールに分割できるようになった。ath(4)ドライバを利用するには、ath_rate_onoe、device ath_rate_amrr、device ath_rate_sampleのうち1つが、カーネルコンフィグレーションに含まれている必要がある。 bge(4)が、altq(4)フレームワークをサポートした(BCM5714、5721、5750、5751、5751M、5789チップと同様)。 cdce(4) USB Communication Device Class Ethernet ドライバが追加された。[MERGED] cp(4)ドライバがMPSAFEになった。[MERGED] ctau(4)ドライバがMPSAFEになった。[MERGED] cx(4)ドライバがMPSAFEになった。[MERGED] dc(4)ドライバがaltq(4)フレームワークをサポートし、MPSAFEになった。[MERGED] de(4)ドライバがMPSAFEになった。 ed(4)ドライバがaltq(4)フレームワークをサポートした。[MERGED] ed(4)ドライバがMPSAFEになった。 em(4)ドライバにおいて、VLAN tagging のためのハードウェアサポートがデフォルトで無効になった(promiscuousモードとの干渉があったため)。[MERGED] fxp(4)ドライバにおいて、Ethernet flow control がデフォルトで無効になった(システムがパニックした場合、およびカーネルデバッガに取り残された場合の、サブネットにおける問題を回避するため)。[MERGED]¥¥ gx(4)ドライバが、削除された(アクティブなメンテナンスが行われておらず、gx(4)ドライバがサポートするハードウェアはすべてem(4)ドライバもサポートしているため)。 hme(4)ドライバがMPSAFEになった。[MERGED] ipw(4) (for Intel PRO/Wireless 2100)、iwi(4) (for Intel PRO/Wireless 2200BG/2225BG/2915ABG)、ral(4) (for Ralink Technology RT2500)、ural(4) (for Ralink Technology RT2500USB) ドライバが追加された。 ixgb(4)ドライバがMPSAFEになった。[MERGED] LanMedia LMC1504 T1/E1 network interface card 向けのmusyccカードが削除された(使用されていないため)。 my(4)ドライバがMPSAFEになった。 ndis(4)デバイスドライバのラッパー機能を利用しているドライバの、ビルドとロードの方法が変わった。ndis(4)は、モジュールとしてプレビルドと、カーネル内への静的なコンパイルの両方が可能になった。それぞれのドライバはndisgen(8)ユーティリティを使ってビルドできるようになり、このため、実行中のカーネルにkldload(8)を使ってロード可能なカーネルモジュールとなった。[MERGED] nve(4)ドライバ(nVidia nForce MCP Networking Adapter をサポートする)が、追加された。 pcn(4)ドライバがMPSAFEになった。 re(4)が、altq(4)フレームワークをサポートした。[MERGED] sf(4)ドライバが、device polling とaltq(4)をサポートし、MPSAFEになった。[MERGED] sk(4)における複数のプログラムミスを修正した。これらのミスはSMPシステムに特有のもので、パニック、ページ違反、SSH接続の切断、ファイル転送の失敗などを引き起こすことがある。詳細はerrata note FreeBSD-EN-05:02.skを参照。[MERGED] sk(4)ドライバが、altq(4)をサポートした。Yukon-basedインターフェイスのjumbo frames もサポートした。[MERGED] ste(4)ドライバがaltq(4)をサポートした。 vge(4)ドライバが、device polling ( polling(4))をサポートした。 wlan(4)フレームワークにおける802.11デバイスのサポートが大幅に見直された。アーキテクチャの変更に加えて、暗号モジュール、認証機能、アクセス制御のために、802.11g、WPA、802.11i、802.1x、WME/WMM、AP-side power-savingプラグインフレームワークを完全に含んでいる。WEPが、wlan_wepモジュールがカーネルにロードされている(もしくは、カーネル内にコンパイルされている)ことを要求するようになったので、特に注意。 xl(4)ドライバが、polling(4)をサポートした。[MERGED] 2.2.3 Network Protocols 送信元が、fragmentが必要なデータを書き込む際、IPv6におけるMTUフィードバックが無効になった。[MERGED] Common Address Redundancy Protocol (CARP) が実装された。CARPはOpenBSD由来で、複数のホストが1つのIPアドレスを共有でき、高いアベイラビリティとロードバランシングを提供する。詳細はcarp(4) manual pageを参照。[MERGED] if_bridge(4)ネットワークブリッジ(NetBSD由来)の実装が追加された。IEEE 802.1D Spanning Tree Protocol、各ブリッジに対する個別のインターフェイスデバイス、ブリッジするパケットのフィルタリングをサポートするもの。ifconfig(8)ユーティリティが、if_bridge(4)のコンフィグレーションをサポートした。 ipfw(4)のIPDIVERTオプションが、ロード可能なカーネルモジュールとして利用可能になった。このモジュールがロードされていない場合、ipfw(4)はdivert ruleのインストールを拒否し、natd(8)が「protocol not supporte」というエラーメッセージを返す。 ipfw(4)システムが、gid、jail、uid rule option のうち1つ以上を利用している場合に、debug.mpsafenet=1(このtunableはデフォルトで1)で動かせるようになった。[MERGED] ipfw(4)システムとdummynet(4)システムがIPv6をサポートした。 ipfw(8)が、divert socket 経由のaltq(4)パケットに対するクラシフィケーションとタギングをサポートした。TCPパケットを指定のペイロードサイズにマッチさせるルールを適用することも可能。 ipfw(8)のipfw fwd rule が、カーネルオプションIPFIRWALL_FORWARDに加えてIPFIREWALL_FORWARD_EXTENDEDも指定している場合に、full packet destination manipulation をサポートするようになった。このカーネルオプションは、ローカルで生成されたパケットの適切な振る舞いを確保するための制限をすべて無効にするとともに、ローカルで設定したIPアドレスへ向けたパケットのリダイレクトを許可する。ipfw(8)のルールは、PMTUなどの事態が発生しないよう、慎重に作成する必要があることに注意。[MERGED] ipfw(8)システムが、IPv4だけのルールをサポートするようになった。 ipnat(8)が、TCP/UDP以外のパケットに適用可能なリダイレクトルールを許可するようになった。[MERGED] ネットワークプロトコルスタックによって実行中の作業における、Giant lock の利用を削減し、ロッキングストラテジを改善した。 libalias libraryがカーネルモジュールとしてビルド可能になった。 ネットワークインターフェイスによるlink state 変更の通知が、/dev/devctlに送られるようになった。 新しいng_ipfw(4) NetGraph node が、ipfw(4)とnetgraph(4)ファシリティの間に簡単なインターフェイスを提供するようになった。 新しいnew ng_nat(4) NetGraph node が、追加された(NAT機能を担当する)。 ng_netflow(4) NetGraph node が、ルーターがFreeBSDを実行してNetFlow version 5 のエクスポートと行うことを許可するようになった。[MERGED]¥¥ 新しいng_tcpmss(4) NetGraph node が追加された。TCPパケットのMSSオプション変更をサポートする。 sppp(4)ドライバがFrame Relay サポートを含むようになった。[MERGED] sppp(4)ドライバがMPSAFEになった。 FreeBSD routing table が、route自身と同一のaddress family になるために、ルーターにゲートウェイを要求するようになった。route(8)ユーティリティが、異なるaddress family の組み合わせを拒否するようになった。たとえば、 # route add 10.1.1.1 -inet6 fe80::1%fxp0 新しいsysctl net.link.tap.user_open が改善された。ファイルシステムのパーミッションに基づいて、tap(4)デバイスノードへの特権のないアクセスを許可する。¥¥ TCPのバグ(receive window が0byteだと、RSTパケットが無視されることがある)が修正された。[MERGED] FreeBSD TCP stack のRSTハンドリングが改善され、TCPスタックの機能を最大限に保ったまま、reset attack を極力困難にした。アルゴリズムは以下のとおり:ESTABLISHED状態にある接続に対しては、sequence number がlast_ack_sentと正確にマッチするresetしかコネクションをリセットしない;その他のセグメントでは、すべて通知なく破棄される。ESTABLISHED以外の状態の接続に対しては、window内でのresetであればコネクションをリセットし、その他のセグメントでは、すべて通知なく破棄される。技術的に見て、この手順がRFC 793 の規定に違反していることに注意;従来の(よりセキュアでない)手順は、sysctl net.inet.tcp.insecure_rst を1にすることで復元できる。[MERGED]¥¥ TCP SACK の実装における複数のバグが修正された。[MERGED] RFC 1644 T/TCP のサポートが削除された。脆弱なセキュリティモデルに基づいておりDoSアタックを容易に許してしまうことが理由。このTCP extension は、最近のInternet Draft でdefectiveとみなされている。 FreeBSDに統合されたKAME IPv4 IPsec の実装が、TCP-MD5をサポートするようになった。[MERGED] random ephemeral port number allocation¥ランダムで短命なポート番号割り当て¥が、コネクションレートが高い場合に、ポートの再利用に関して問題を起こす場合が出てきた。コネクションレートが高い場合には、この機能を無効にするようになった;新しいコネクションが1秒あたりにnet.inet.ip.portrange.randomcpsよりも多く発生した場合、次のnet.inet.ip.portrange.randomtime秒間はport number randomization を無効にする。このsysctl variable 2つは、デフォルト値がそれぞれ10と45になっている。[MERGED] fine-grained locking が、IPX/SPXプロトコルスタックにおける多くのデータ構造に適用されるようになった。現時点では完全にMPSAFEではないものの、Giant lock なしでIPX/SPXを利用しても概ね安全である(言い換えれば、debug.mpsafenet sysctl variable を1にしてもよいだろうということ)。 Unix domain socketsが、LOCAL_CREDSオプションとLOCAL_CONNWAITオプションをサポートした。LOCAL_CREDSオプションは、受信者がプロセスの証明書をrecvmsg(2)のコントロールメッセージとして受け取るメカニズムを提供する。LOCAL_CONNWAITオプションは、listenしているsocketでaccept(2)が呼ばれるまでconnect(2)ファンクションをブロックする。詳細はunix(4) manual page を参照。 2.2.4 Disks and Storage amr(4)が、pae(4)を利用しているシステムで利用しても安全になった。[MERGED] arcmsr(4)ドライバが追加された。Areca ARC-11xx シリーズとARC-12xx シリーズのSATA RAID コントローラーをサポートするもの。[MERGED] ata(4)ドライバ群が見直しとアップデートを受けた。独立にロードやアンロードができるモジュールに分割された(atadisk、atapicd、atapifd、atapist、ataraidなどのデバイスサブドライバは、atapciモジュールとataモジュールを必要とする)。SATAコントローラーのサポートがあれば、デバイスのホットインサートとホットリムーブが可能。ATA RAID サポートが書き直され、多数のメタデータフォーマットを新たにサポートした。atapicdドライバがCDチェンジャーをサポートしなくなった。このアップデートは「ATA mkIII」と呼ばれている。 SHSEC GEOM クラスが追加された。複数のGEOMプロバイダ間でsecretを共有するためのもの。secretを読み取るには、他のGEOMプロバイダがすべてそろっている必要がある。この機能はgshsec(8)ユーティリティによって制御される。[MERGED]¥共有というか、分割保持のことか¥ GEOMベースのディスク暗号化機能(GEOM_ELI)が追加された。GEOM_ELIは、ハードウェアアクセラレーションにcrypto(9)フレームワークを利用し、暗号化アルゴリズムの変更をサポートする。詳細はgeli(8)を参照。[MERGED] hptmv(4)ドライバ(HighPoint RocketRAID 182x シリーズをサポートする)が追加された。[MERGED] ips(4)ドライバが、比較的新しいServeRAIDモデルにおいてカーネルクラッシュダンプをサポートした。[MERGED] matcd(4)ドライバが削除された。[MERGED] GENERICカーネルにおけるSCSI boot-time probe delay のデフォルト値が、15秒から5秒に短縮された。 新しいgeom(4)ベースのサブシステムのため、古いvinum(4)サブシステムが、削除された。 twa(4)ドライバが9.2 release (for FreeBSD 5.2.1) にアップデートされ、3wareのウェブサイトで配布されている。 新たにマウントされたcd9660ファイルシステムについての情報(RockRidge extension の有無など)が、カーネルをverbose mode でブートしたとき以外は表示されなくなった。この変更は(一般的には不要な)カーネル ログ メッセージ の量を減らすためのもの。[MERGED] 2.2.5 File Systems 「dirty」なUFSもしくはUFS2ファイルシステムに関して、マウント時に情報のサマリーを再計算せず、バックグラウンドでfsck(8)を実行するようになった。この変更で、クラッシュ後に大容量のファイルシステムをマウントする場合のスタートアップ時間が短縮される。vfs.ffs.compute_summary_at_mount sysctl variable をnon-zero値に設定すれば、従来の振る舞いを復元することができる。[MERGED] NFSサーバにおけるカーネルパニックが修正された。詳細はerrata note FreeBSD-EN-05:01.nfs を参照。[MERGED] ReiserFS version 3 のリードオンリーサポートが追加された。詳細はmount_reiserfs(8)を参照。 2.2.6 Contributed Software ACPI-CAが20040527から20041119にアップデートされた。[MERGED] 2.3 Userland Changes bsdiff(1)バイナリdiffとbspatch(1)バイナリパッチツールが追加された。 burncd(8)ユーティリティによるディスクのfix後に、コマンド(ejectなど)の実行が可能になった。 chflags(1)が、-hフラグ(シンボリックリンクのフラグを変更する)をサポートした。 env(1)プログラムが、-vフラグ(実行前にコマンドを標準エラー出力に書き出す)をサポートした。 env(1)プログラムが-S string option (文字列を分割して、コマンドライン引数としてコマンドに渡す)をサポートした。 env(1)が-P altpath option (コマンドの検索パスを設定する)をサポートした。 ftpd(8)が、ディレクトリとファイルの状態に関して、212と213のステータスコードを正しく使うようになった(以前のバージョンでは211で代用していた)。この振る舞いはRFC 959 に記述されているもの。[MERGED] gpt(8)ユーティリティのcreateコマンドが、-f command-line フラグ(ディスクにMBRレコードが存在しても、強制的にGPTを作成する)をサポートした。[MERGED] getaddrinfo(3)ファンクションが、AF_UNSPECを指定した場合、AAAAレコードの前にA DNS リソースレコードをクエリするようになった。欠陥のあるDNSサーバには、AAAAクエリが存在しないにもかかわらず(空のリターンレコードとともにNOERRORを返すべき場合でも)NXDOMAINを返すものがある。最初のAAAAクエリに対してNXDOMAINが返ると、クエリ送信元のサーバが(たとえAレコードが存在していても)Aレコードの解決を試みなくなるため、IPv4/IPv6のデュアルスタックにおいて問題となる。また、この振る舞いにはDoSアタックになりうるものだと認識されている(詳細はhttp://www.kb.cert.org/vuls/id/714121を参照)。クエリの順番が変わったとはいえ、リザルトが(AF_INETレコードよりも前に)AF_INET6レコードに含まれて返されるのは従来どおりであることに注意。 gethostbyname(3)、gethostbyname2(3)、gethostbyaddr(3)ファンクションが、thread-safeになった。[MERGED] getnetent(3)、getnetbyname(3)、getnetbyaddr(3)ファンクションが、thread-safeになった。[MERGED] getprotoent(3)、getprotobyname(3)、getprotobynumber(3)ファンクションが、thread-safeになった。[MERGED] getservent(3)、getservbyname(3)、getservbyport(3)ファンクションが、thread-safeになった。[MERGED] IEEE Std 1003.1-2001(POSIX 2001 としても知られる)に準拠するため、struct netent のn_netメンバとgetnetbyaddr(3)の第1引数がuint32_tに変更された。この変更により、64-bitプラットフォーム上のABIが、FreeBSDの以前のリリースと互換性がなくなり、libpcap共有ライブラリのメジャーバージョンがbumpされた¥訳注:要するにメジャーバージョンアップした¥。古いバージョンのFreeBSDからアップグレードされた64-bitプラットフォーム上で、getnetbyaddr(3)、getnetbyname(3)、getnetent(3)、libpcapのうち1つ以上を利用しているユーザーランドプログラムは、リコンパイルする必要がある。 gvinum(8)ユーティリティが、checkparity、rebuildparity、setstateサブコマンドをそれぞれサポートした。[MERGED] ifconfig(8)ユーティリティが再構成された。モジュール性が高まり、各インターフェイス特有な機能のサポートに関して、より柔軟になった。802.11サポートがアップデートされ、802.11のサブシステムとドライバに加えられた最近の変更に追従した。 ifconfig(8)ユーティリティが、-tunnelパラメータ(deletetunnelのエイリアスに過ぎないが、タイプするのが楽)をサポートした。 ifconfig(8)に対する-vlandevパラメータが、ネットワークインターフェイス名を引数として要求しなくなった。後方互換性のため引数は引き続き利用可能だが、deprecated扱いとなり利用しないことが推奨される。 ipfw(8)の省略形サポートが、多数deprecated扱いになった。これに該当する省略形が検出されると、標準エラー出力に警告が流れ、省略しない正しい書き方を表示する。¥原文に「stderr」とあるのはシャレなのか?¥ kldstat(8)ユーティリティが-mオプション(指定したカーネルモジュールのステータスを返す)をサポートした。[MERGED] LC_CTYPEファイルのオンディスクフォーマットが変更された(機種依存でなくなった)。 libkvmが、amd64プラットフォームとi386プラットフォームでELFクラッシュダンプを、32-bitプラットフォームで大きなクラッシュダンプ(4GBを越えるもの)を、i386プラットフォームでPAEクラッシュダンプをサポートした。 mixer(8)ユーティリティが-Sオプションをサポートした。mixing field のセパレータを表示しない以外は-sオプションと同じ。 libaliasライブラリのバグ(natd(8)で-reverseオプションを指定したときにコアダンプが発生する)が修正された。 libarchiveライブラリが、ISOイメージ(optional RockRidge extension ありのもの)とZIP書庫(デフォルトの圧縮と無圧縮のもの)の読み込みをサポートした(このライブラリを利用しているtar(1)コマンドについても同様)。[MERGED] libarchiveライブラリが、圧縮後のサイズが4GBを越えるZIPアーカイブエントリ(ZIP64エクステンション)とUnixエクステンションの扱いをサポートした。 libgpibライブラリ(GPIBに(pciiドライバを使って)ibfoo API 経由でユーザーランドアクセスするためのもの)が追加された。[MERGED] libpthread、libthr、libc_rのデフォルト スタック サイズ が増やされた。32-bitプラットフォームでは、メインスレッドはデフォルトで2MBのスタックを受け取り、他のスレッドではデフォルトで1MBのスタックを受け取る。64-bitプラットフォームでのデフォルト スタック サイズ は、それぞれ4MBと2MB。[MERGED] libxpg4ライブラリが削除された(このライブラリの機能すべてが、かなり以前にlibcにマージされているため)。libxpg4にリンクしているすべてのバイナリは、リコンパイルするかlibmap.conf(5)を利用しなければならない。FreeBSD base system にはlibxpg4にリンクしているバイナリはないということに注意。 lpd(8)プログラムが、他のホストからデータファイルを受け取った場合に、データファイルの転送が完全に行われたかどうか、印刷前に確認するようになった。lpr(1)の実装には、データファイルの送信前に、その印刷ジョブのコントロールファイルを送信するものがあり、受信側のホストでプリントサーバがビジーであった場合に問題を起こすことがある。[MERGED] math(3)ライブラリに多数のファンクションが実装された。ceill(3)、floorl(3)、ilogbl(3)、fma(3)とそのvariant、lrint(3)とそのvariant、lround(3)など。[MERGED] mknod(8)ユーティリティがdeprecated扱いになった。FreeBSD 5.0 から、デバイスノードはvfs(5) デバイス ファイル システム で管理されている。 mkuzip(8)ユーティリティ(GEOM_UZIP geom(4) モジュール用にファイルシステムのイメージを圧縮する)が追加された。[MERGED] moused(8)マウスデーモンが「virtual scrolling」(マウスの中ボタンを押下したまま行ったマウスの移動が、画面スクロールによってインタラプトされるというもの)をサポートした。この機能は-Vフラグで有効になる。[MERGED]¥訳注:ようするに、中ボタンを押したままマウスを動かすことで、マウスポインタの移動ではなく画面のスクロールが行える¥ named(8)ダイナミックゾーンに、bindユーザーが所有するセパレートディレクトリ(ゾーン ジャーナル ファイル の作成に使用する)が追加された。詳細は sample named.conf(5) のexample dynamic zone を参照。[MERGED] ncal(1)ユーティリティが、-mフラグ(現在の年の指定した月のカレンダーを作成する)をサポートした。[MERGED] newfs(8)ユーティリティが、-nフラグ(新規のファイルシステムに.snapディレクトリを作成しないようにする)をサポートした。オン メモリ ファイルシステム やvnodeファイルシステムなど、スナップショットをサポートする必要がないファイルシステムで利用するためのもの。[MERGED] newfs(8)が、作成するUFSもしくはUFS2ファイルシステムがスナップショットをサポートできない場合に、警告を出すようになった。この状況は、非常に大きなファイルシステムで、かつブロックサイズが小さい場合に起こり得る。[MERGED] newsyslog(8)ユーティリティが、-dオプション(ログファイルのroot変更を指定するもので、BSD make process におけるDESTDIRと似たもの)をサポートした。このオプションによる設定はログファイルのパスにのみ影響し、コンフィグレーションファイル(-fで指定)やアーカイブディレクトリ(-aで指定)のパスには影響を与えない。 newsyslog(8)ユーティリティが-Nオプション(ログローテーションを一切行わなくなる)をサポートした。 ユーザーランド向けのNO_NIS compile-time knob が追加された。名前のとおり、このMakefile variable を有効にすると、各種プログラムから実行可能なNISサポートが実現できるもので、NISユーティリティはビルドされなくなる。¥訳注:よくわからないが、NISユーティリティの代替となる機能を提供するものか?¥[MERGED] FreeBSDでは長年、NOFOOという形のMakefile variable とNO_FOOという形のMakefile variable を併用してきたが、一貫性をもたせるために、前者のルールを用いてきたvariableが後者のルールに従って書き換えられた。変更されたvariableについて、/usr/share/mk/bsd.compat.mkが完全なリストとなっており、古い名称に対応するための後方互換を一時的に実装している。 periodic(8)のsecurity output が、ブロックしたパケット数(pf(4)がカウントしたもの)について情報を表示するようになった。[MERGED] pgrep(1)コマンドが、-Sオプション(システムプロセス(カーネルスレッド)にマッチさせる)をサポートした。 pgrep(1)コマンドとpkill(1)コマンドが、-Fオプション(ファイルに記述されたPIDを持つプロセスにマッチする)をサポートした。¥訳注:おそらく、pgrep -F /var/run/mydaemon.PID などとしてmydaemonを探すためのもの¥ pgrep(1)コマンドとpkill(1)コマンドが、-iオプション(大文字と小文字を区別しない)をサポートした。 pgrep(1)コマンドとpkill(1)コマンドが、-jオプション(jail(2)のIDにマッチさせる)をサポートした。 pgrep(1)コマンドとpkill(1)コマンドが、-oオプション(一番古い(最初に起動された)プロセスのみにマッチさせる)をサポートした。¥訳注:pgrep -o postfix としてpostfixの親プロセスのみ表示させるなどといった使い方になるのだろう¥ portsnap(8)ユーティリティ(FreeBSD ports tree のダウンロード、アップデート、スナップショットの展開に用いる)が追加された。 powerd(8)プログラム(消費電力マネジメントに用いる)が追加された。 ppp(8)がecho parameter(LCP ECHO をLQRレポートの内容に関わらず有効にする)を実装した。古いバージョンのppp(8)は、ネゴシエーション失敗時にLCP ECHO モードに復帰する。新しいppp(8)にこの振る舞いをさせるには、echoをenableに指定しなければならない。[MERGED] ppp(8)プログラムに、disable NAS-IP-Address オプションとdisable NAS-Identifier オプション(pre-RFC 2865 RADIUS servers をサポートする)が追加された。 ppp(8)プログラムの2つのバグが修正された。間違ったCBCPレスポンス(Microsoft PPP Callback Control Protocol のsection 3.2 に違反する)を返す場合があるというもの。[MERGED] ps(1)ユーティリティが、-oオプション内でjidキーワードをサポートした。各プロセスのjail(2) ID を表示する。 pstat(8)プログラムが-hオプション(swapの大きさを、K、M、GなどのSI単位で表示する:以前は2のべき乗を単位にしていた)をサポートした。¥訳注:おそらく、1024byte==1kbyteの表示から1000byte==1Kbyteの表示に変更できる、という意味¥ rescue(8)ユーティリティ(/rescueディレクトリにある)が、GNU tar の代わりにbsdtar(1)をincludeするようになった。 restore(8)ユーティリティに、FreeBSD version 1 dump tape を読み込む機能が復活した。[MERGED] rexecd(8)ユーティリティのバグ(つねに、-iオプションが指定されているかのように振舞う)が修正された。[MERGED] rexecd(8)ユーティリティが削除された。今ではFreeBSD tree にrexecクライアントは存在していないし、rexec(3)のクライアント機能もlibcompatにしか存在しない。 rm(1)ユーティリティが、-Iオプション(ディレクトリを再帰的に削除する場合もしくはコマンドラインで3つ以上のファイルを指定した場合に、確認の問い合わせ(1回)をする)をサポートした。[MERGED] rm(1)ユーティリティが、-rオプションと-fオプション付きで存在しないディレクトリを削除しようとした場合に、診断メッセージを出さなくなった。この振る舞いは、Single UNIX Specification (SUSv3) のVersion 3 で要求されているもの。 以下のISO/IEC 9899:1999 standard function が実装された:roundl()、lroundl()、llroundl()、truncl()、floorl() rpmatch(3) library function (文字列が現在のロケールにおいて肯定を表すレスポンスなのか、否定を表すレスポンスなのかチェックする)が追加された。¥訳注:恐らく、たとえば「実行」「はい」「続行」は肯定のレスポンス、「中断」「いいえ」「キャンセル」は否定のレスポンス、といった風に判断するのだと思う。レスポンスはあらかじめ(多分環境変数で)肯定否定のどちらであるかを定義しておく(はず)。¥ rtld(1) dynamic linker が、LD_LIBMAP環境変数による、ライブラリ変更の指定をサポートした。この環境変数はlibmap.conf(5)のエントリを上書きする。[MERGED] rune(3) non-standard multibyte and wide character support interface が削除された。 sed(1)が、-lオプション(出力をラインバッファする)をサポートした。[MERGED] strftime(3)ファンクションが、GNUのエクステンション(-(パディングなし)、_(スペースでパディング)、0(0でパディング)など)をサポートした。[MERGED] syslog(3)ファンクションがthread-safeになった。[MERGED] syslogd(8)ユーティリティが、追加のドメインソケット(デフォルトでは/var/run/logpriv)をオープンするようになった(追加されたドメインソケットのパーミッションは0600で、権限をもったプログラムから利用する)。ローカルDoSによってドメインソケットがバッファスペースを使い果たした場合に、権限をもったプログラムがロックするのを防ぐ。[MERGED] syslogd(8)が-Sオプション(権限のあるソケットのパス名を書き換える)をサポートした。デーモンにローカルソケット(デフォルトでは/var/run/logと/var/run/logpriv)からのメッセージを一切読み取らせたくない場合に有用。[MERGED] syslogd(8)ユーティリティが、ホストネームの指定に:と%の文字を許容するようになった。これらの文字はIPv6とscope ID で利用される。[MERGED] systat(1) -netstat display がIPv6に対応した。[MERGED] tail(1)ユーティリティの-fオプションが、一度に複数のファイルをサポートできるようになった。[MERGED] telnet(1)とtelnetd(8)プログラムが、-Sオプション(numeric TOS byte を指定する)をサポートした。 telnet(1)プログラムに渡すポート番号への、+文字のprependが、option negotiation を無効にして、high bit set の文字の転送を許可するようになった。この機能は、telnet(1)をプロトコルテスターにするという、かなり普及した利用法をサポートするためのもの。¥意味が取れなかったので原文掲載:telnet localhost:+8080 のような使い方をするのだと思うが不明¥ Prepending a + character to port numbers passed to telnet(1) program will now disable option negotiation and allow the transfer of characters with the high bit set. This feature is intended to support the fairly common use of telnet(1) as a protocol tester. tcpdrop(8)コマンド(選択したTCPコネクションをcloseする)が追加された。OpenBSD由来。[MERGED] what(1)が-qフラグ(マッチしたテキストを表示するが、整形はしない)をサポートした。 whois(1)が-kフラグ(whois.krnic.net(the National Internet Development Agency of Korea:KoreaのIPアドレスアロケーションのデータを保持している)にクエリを送る)をサポートした。[MERGED] xargs(1)コマンドの-Iオプションが、IEEE Std 1003.1-2004に準拠したものに変更された。この規格では、生成される引数が255バイトを越えないことを要求している。 hosts(5)やservices(5)などの設定ファイルで、ファイルの最終行が改行文字で終わっていない場合に、最終行が無視されるバグが修正された。[MERGED] 新しいシステム(user/group _dhcp)が追加された(dhclient(8)をサポートするもので、OpenBSD由来)。 2.3.1 /etc/rc.d Scripts rc.d/bsnmpdスタートアップスクリプト(bsnmpd(1)用)が追加された。 rc.d/jailスタートアップスクリプトが、jail_name_flags variable (jail(8)フラグの指定を可能にするためのもの)をサポートした。[MERGED] rc.conf(5)が、ブート時のネットワークインターフェイス名変更をサポートした[MERGED] たとえば: ifconfig_fxp0_name="net0" ifconfig_net0="inet 10.0.0.1/16" rc.d/mousedスクリプトが、デバイス名が第2引数として与えられた場合、そのデバイスのstart/stop/checkを行う: # /etc/rc.d/moused start ums0 異なるrc.conf(5)のknobを異なるマウスで利用するには、デバイス名をknobの一部に使う。たとえば、マウスデバイスが/dev/ums0ならば、以下のような記述が利用できる: ¥意味が取れなかったので原文を併記する¥ To use different rc.conf(5) knobs with different mice, use the device name as part of the knob. For example, if the mouse device is /dev/ums0 the following lines can be used: moused_ums0_enable=yes moused_ums0_flags="-z 4" moused_ums0_port="/dev/ums0" rc.conf(5)が、tmpmfs_flags variable とvarmfs_flags variable をサポートした。mdmfs(8)に追加オプションを渡すのに利用でき、md(4)の、よりきめ細かいファイルシステム作成(softupdateのon/off、ファイルシステムのデフォルトオーナーなど)をカスタマイズできるというもの。[MERGED] NetBSDに特有のもので、FreeBSDでは今後利用されないことから、以下のスクリプトが削除された:altqd、dhcpd、dhcrelay、downinterfaces、gated、ifwatchd、kdc、lkm1、lkm2、lkm3、mixerctl、mopd、mountall、ndbootd、network、poffd、postfix、ppp、racoon、raidframe、rbootd、rtsold、screenblank、swap2、sysdb、wscons、xdm、xfs 2.4 Contributed Software awkのバージョンが、7 February 2004 release からthe 24 April 2005 release に上がった。 BINDのバージョンが、version 9.3.0からversion 9.3.1.に上がった。[MERGED] bsnmpが、1.7から1.10にアップデートされた。 bzip2が、1.0.2から1.0.3にアップデートされた。 OpenBSD 3.7 相当のOpenBSD dhclient がインポートされた。以前のバージョンのFreeBSDで利用されていたISC DHCP client を置換するもの。 FILEが、4.10から4.12にアップデートされた。 GNU GCC が、3.4.2-prerelease as of 28 July, 2004から3.4.4にアップデートされた。 GNU grep に、多数のバグフィックスとパフォーマンス強化がなされた(Fedoraのgrep-2.5.1-48 source RPM からのパッチを用いた)。 GNU readline が、version 4.3からversion 5.0にアップデートされた。 IPFilterが、3.4.35から4.1.18にアップデートされた。 Heimdalが、0.6.1から0.6.3にアップデートされた。[MERGED] hostapd v0.3.9 がインポートされた。ユーザースペースでIEEE 802.11 APとIEEE 802.1X/WPA/WPA2/EAPの認証を行い、RADIUSの認証サーバになるというもの。詳細はhostapd(8)を参照。 libpcapがv0.8.3からv0.9.1にアップデートされた(alpha 096)。 libregexが、snapshot from GNU grep 2.5.1 からsnapshot from the fedora-glibc-2_3_4-21 (glibc CVS リポジトリ内のタグ)にアップデートされた。 libzが、1.2.1から1.2.2にアップデートされた。 lukemftpが、26 April 2004 snapshot from NetBSD's sourcesからsnapshot as of 16 May 2005にアップデートされた。 snapshot of netcat from OpenBSD as of 4 February 2005 が追加された。詳細はnc(1) manual page を参照。[MERGED] NgATMが、1.0から1.2にアップデートされた。 OpenPAMが、Eelgrass release からFigwort release にアップデートされた。 OpenSSHが3.8p1から4.1p1にアップデートされた。 OpenSSLが、0.9.7dから0.9.7eにアップデートされた。[MERGED] pfが、OpenBSD 3.5 に同梱されていたバージョンからOpenBSD 3.7 に同梱されているバージョンにアップデートされた。 sendmailが、version 8.13.3 からversion 8.13.4 にアップデートされた。OSTYPE(freebsd6)をサポートしている。 tcpdumpが、v3.8.3からv3.9.1 (alpha 096) にアップデートされた。 tcshが、6.13.00から6.14.00にアップデートされた。 texinfoが、4.6から4.8にアップデートされた。 timezone database が、tzdata2004e release からthe tzdata2004g release にアップデートされた。[MERGED] WPA Supplicant v0.3.9 が移植された。WPA/IEEE 802.11i の機能を備えたWPA Supplicant コンポーネントを提供するもの。詳細はwpa_supplicant(8)を参照。 2.5 Ports/Packages Collection Infrastructure pkg_create(1)ユーティリティが-Rフラグをサポートした。このフラグを指定すると、ローカルにインストールされたpackagesからパッケージファイルを作成する際に、ローカルにインストールされたpackagesが依存するpackagesすべてを対象にパッケージファイルを作成する。 pkg_version(1)ユーティリティが-qフラグ(portsのバージョン比較記号である<、=、>の表示を抑止する)をサポートした。 pkg_version(1)ユーティリティが-Iフラグ(packagesが古いバージョンであるかどうかの判断を、INDEXファイルのみに基づいて行うようにする)をサポートした。 ports/INDEX*ファイル(ports collection の全エントリに関するインデックスを保持している)がCVSリポジトリから削除された。[MERGED] これらのファイルが頻繁に更新されることはなく、情報が古くなり不正確だった。インデックスファイルが必要なユーザー(portupgrade(1)などのプログラムを利用する場合)は、インデックスの入手方法を変更する必要がある: ports/ツリーのトップでmake index を実行して、最新のportsツリーからインデックスファイルを作成する。 ports/ツリーのトップでmake fetchindex を実行して、ネットワーク越しにインデックスファイルをfetchする。このインデックスファイルは(多くの場合)1日間は正確なものである。 2.6 Release Engineering and Integration FreeBSDの以前のバージョンでは、disc1 CD-ROM(もしくはISO image)がブータブルなインストールディスクで、base system、ports tree、common packages を含んでいた。disc2 CD-ROM(もしくはISO image)はlive filesystem を含んだブータブルな「fix it」ディスクで、緊急のリストアに利用されていた。このレイアウトが変更された。ia64を除くすべてのアーキテクチャで、disc1 image は、base system のディストリビューションファイル、ports tree、live filesystem を含んでおり、インストール作業とリストア作業の両方に適したものとなった(ia64では、ファイルサイズの制限のために、live filesystem が別のディスクに入っている)。packagesは別ディスクに入っており、とくに、デスクトップ環境などのcommon packages がdisc2に入っている。FreeBSD Documentation Project のドキュメントも、disc2に入っている。[MERGED] GNOME desktop environment のサポートバージョンが2.6.2から2.10.2にアップデートされた。FreeBSDでのGNOMEの実行に関する詳細はFreeBSD GNOME Project のウェブページを参照。[MERGED] 注意:古いバージョンのGNOME desktop (x11/gnome2) ユーザーは、アップグレードに特に注意を払う必要がある。portupgrade(1)を使ってFreeBSD Ports Collection からそのままアップグレードを行うと、深刻な問題が起こる。GNOME desktop ユーザーはhttp://www.FreeBSD.org/gnome/docs/faq210.htmlの説明を熟読したうえで、gnome_upgrade.shスクリプトを使ってGNOME 2.10 へのアップグレードを適切に行う必要がある。 KDE desktop environment のサポートバージョンが3.3.0から3.4.2にアップデートされた。FreeBSDでのKDE実行に関する詳細はKDE on FreeBSD のウェブページを参照。[MERGED] 注意:KDEユーザーは、KDE on FreeBSD のウェブページもしくはports/UPDATINGで説明されているアップグレード手順に従う必要がある。 ¥訳注:http://www.kde.org/info/3.4.3.php(トップページはhttp://freebsd.kde.org/)を参照するとインストールに関する注意はとくになく、インストールされるファイルのサイズやチェックサム、Konstructを使うと便利だということなどが書いてある。http://freebsd.kde.org/instructions.phpには「Upgrading KDE 3.x to 3.y on FreeBSD」という記述までしかない(どちらも2005/11/07現在)。¥ ¥ports/UPDATINGには非常に豊富な情報があるが、3.3.x系から3.4.x系へのアップグレードのみについて大雑把にまとめると、単にportupgrade -a としたのではダメで、portupgrade -R kde もインストールしているコンポーネントによっては失敗することがある。推奨されるアップグレード手順(sysutils/portupgradeをインストールした上でスーパーユーザーになっておくことが前提で、KDEは終了させておくことが強く推奨されている)は、 1、コンフリクトを起こすパッケージを削除する。 pkg_deinstall -f kdeartwork-\[0-9\]\* kdebase-\[0-9\]\* \ kdebase-konqueror-nsplugins-\[0-9\]\* kdewebdev-\[0-9\]\* \ kde-\[0-9\]\* akregator\* phase\* 2、残ったコンポーネントをアップグレードする portupgrade -O arts\* kde\* \*kde-i18n\* もしくは portupgrade -a 3、削除したコンポーネントをインストールしなおす portinstall -O kdebase kdeartwork kdewebdev だそうだ。また、 KDE_OPTIONSオプションつきでqt33をコンパイルした(qt-3.3.4ではなくqt-copy-3.3.4がインストールされている)場合、 portupgrade -rf qt\* をやっておく必要があるらしい。3.4.1>3.4.2というアップグレードだと、 pkg_deinstall -f kdeadmin-\[0-9\]\* portupgrade -O arts\* kde\* \*kde-i18n\* portinstall -O kdeadmin という手順になるようだ。端折った要約なので必ず原文を参照のこと。¥ Xorgのサポートバージョンが6.7.0から6.8.2にアップデートされた。[MERGED] 2.7 Documentation 以下のmanual page が追加され、既存の機能に関するドキュメンテーションが改善された:acpi_ibm(4)、acpi_sony(4)、ataraid(4)、bus_space(9)、central(4)、clkbrd(4)、creator(4)、devfs.conf(5)、devfs.rules(5)、ebus(4)、eeprom(4)、fhc(4)、machfb(4)、ofw_console(4)、openfirm(4)、openprom(4)、pmap_page_init(9)、pthread_atfork(3)、rtc(4)、sbus(4)、sched_4bsd(4)、sched_ule(4)、snd_fm801(4)、snd_neomagic(4)、snd_t4dwave(4)、snd_via8233(4)、snd_via82c686(4)、snd_vibes(4) base system のmanual page が、内容と説明方法の両面で、多数整理された。クロスリファレンスがより正確で一貫性のあるものになり、全体を通してstandard section heading が用いられ、マークアップが整理された。 以下のmanual page(RFCに由来しており、IETFのコピーライトを侵害するおそれのあるもの)が差し替えられた:gai_strerror(3)、getaddrinfo(3)、getnameinfo(3)、inet6_opt_init(3)、inet6_option_space(3)、inet6_rth_space(3)、inet6_rthdr_space(3)、icmp6(4)、ip6(4)[MERGED] 3 Upgrading from previous releases of FreeBSD FreeBSD 6.0-RELEASE へのソースアップグレードは、FreeBSD 5.3-RELEASE 以降からのみサポートされる。それ以前のシステムのユーザーは、まずFreeBSD 5.3 以降にアップデートしたうえで、FreeBSD 6.0-RELEASE にアップデートする必要がある。 重要:FreeBSDのアップグレードは、もちろん、すべてのデータと設定ファイルをバックアップした後にのみ行うべきである。