Back to the news overview

LXC 1.0.8 リリースのお知らせ

2015/11/09

このリリースは LXC 1.0 の 8 回目のバグフィックスリリースです。

重要な変更:

  • セキュリティホール CVE-2015-1331 の修正
  • セキュリティホール CVE-2015-1334 の修正

コア:

  • ネストしたコンテナをサポートするために include する nesting.conf を追加しました
  • CAP_AUDIT_READ と CAP_BLOCK_SUSPEND のサポートを追加しました
  • rootfs が指定されない場合でも autodev が動作するようになりました
  • 非特権コンテナの場合でもケーパビリティをドロップするようにしました
  • apparmor: /proc/kcore に対するアクセスをブロックするようにしました
  • apparmor: スレーブのバインドマウントに関する修正を行いました
  • apparmor: 最新の git master ブランチに同期しました
  • attach: 中間子プロセスで exit() の代わりに _exit() を使うようになりました
  • aufs: 非特権のクローンとマウントができるようになりました
  • ラッパーの代わりに /lib/apparmor/profile-load を直接呼ぶようにしました
  • cgmanager: attach: 'all' コントローラを使わなくなりました
  • cgmanager: check_supports_multiple_controllers 関数の最後でメモリを解放するようにしました
  • cgmanager: 非特権コンテナを $(curcgroup)/lxc/$(container0) 以下に配置するようにしました
  • lxc-clone が 'rsync -a' の代わりに 'rsync -aH' を使ってクローンするようになりました。これは Launchpad の Bug #1441307 への対応です
  • clone_paths: クローン先ディレクトリとして 'rootfs' を使うようになりました
  • config: lxc.*signal 用に色々なシグナルの定義を追加しました
  • デーモンでのコンテナ開始時、子プロセスは失敗時に return でなく exit するようになりました
  • Android 向けに bdev.c で MS_REC と MS_SLAVE を定義しました
  • Android 向けに MS_RELATIME を定義しました
  • Android 向けに O_PATH と O_NOFOLLOW を定義しました
  • cgmanager_list_controllers が利用できるかどうか検出するようになりました
  • do_lxcap_stop: コンテナが停止するまで待つようになりました
  • opentty が失敗した場合、std* ファイルディスクリプタをクローズしないようにしました
  • 非特権ユーザに対してデフォルトで seccomp を有効にしました
  • (lxc.mount.entry に指定する) create=dir と create=file を処理する関数を分けました
  • 定数がないことが原因の Android のビルドの問題を修正しました
  • rootfs が指定されない場合の自動マウントの不具合を修正しました
  • mpc85xx でビルドする際の問題を修正しました
  • IPv4/IPv6 アドレスをクリアする際の問題を修正しました
  • rootfs が指定されない場合のコンテナ作成の不具合を修正しました
  • attach 時のコントロール TTY の問題を修正しました
  • rootfs が指定されない場合の /dev のシンボリックリンクの不具合を修正しました
  • クローン時にファイルの拡張属性が失われる問題を修正しました
  • lxc-init(init.lxc) を見つけられない場合のエラーメッセージを修正しました
  • 一時的なコンテナを破壊する際の処理が不十分だったのを修正しました
  • 同じ ID の VLAN インターフェースを複数持つコンテナを起動する際の問題を修正しました
  • mount を呼ぶ際の入れ替わった引数の問題を修正しました (訳注:ramfs の rootfs の場合、/ を rprivate マウントする際のエラーの修正)
  • rootfs が指定されない場合の start フックの検証を修正しました
  • cgroup パス末尾の /init.scope を無視するようにしました
  • Init の error_num を 1 にしました (訳注:error_num (コンテナをトラッキングする終了コード) を適切に初期化するようになりました)
  • init: 古いバージョンの apparmor をサポートしました
  • lxc.mount.auto で ENOENT をスキップするようにしました
  • lxc_monitor: ファイルディスクリプタ集合 (pollfd 構造体の配列) のメモリリークの修正を行い、ファイルディスクリプタをクローズするようにしました
  • lxc_monitor: エラー時に正規表現関連の変数を解放するようにしました
  • lxc_mount_auto_mounts: NULL 判定をきちんと行った後に処理を行うようにしました
  • cgmanager 使用時に lxc.cgroup.use の値を使用するようになりました
  • LXC_CLONE_KEEPNAME の指定が正常に動作するようになりました
  • mount_entry_create_*_dirs() をより確実に動作するようにしました
  • overlayfs のマウントを直接行えるようにしました
  • rootfs が指定されない場合でも、必要な場合のみ /proc をマウントするようになりました
  • 標準入力が tty の時のみ、ファイルディスクリプタを再オープンするようになりました
  • lxcpath が設定されていないかデフォルトの場合のみ LOGPATH を使うようになりました
  • overlay: workdir が存在しない場合は作成するようになりました
  • リブートフラグを与えて、リブート時に以前の veth を消去するようになりました
  • ユーザネームスペース使用時、/proc のアンマウントの失敗を無視するようにしました
  • btrfs のサブボリュームを削除するようになりました
  • rpm: lxc-libs パッケージを lxc パッケージに対する依存パッケージとして追加しました
  • seccomp: aarch64 のサポートを追加しました
  • seccomp: ppc のサポートを追加しました
  • seccomp: umount -f を拒否するルールを追加しました
  • seccomp: ルールのパースの単純化と修正を行いました
  • tty でない場合はコントロール TTY のコードをスキップするようにしました
  • 適用前に cgroup のメモリの設定をソートするようにしました
  • aufs を使った一時的なコンテナのサポートを追加しました
  • コンテナの停止時にネットワークデバイスを確実に削除するようにしました
  • 標準ファイルディスクリプタの NULL 化処理を共通化しました
  • 存在する場合は /dev/loop-control を使うようになりました
  • 必要に応じてファイルシステム名として 'overlay' を使うようになりました
  • 使える場合は select の代わりに poll を使うようになりました
  • bash 補完で POSIX 互換の関数名を使うようになりました
  • Thin Provisioning を使わない LVM の場合に rdepends を使うようにしました (訳注: Thin Provisioning を使わない LVM の場合、スナップショットクローン元のコンテナが削除できなくなりました)
  • コンテナ作成時、rootfs が既に存在している場合も設定を保存するようになりました

ドキュメント :

  • 日本語の lxc.container.conf(5) に LXC が行うマウントに関する注意を追記しました
  • lxc-clone(1) の '-s' オプションの説明に zfs, aufs, overlayfs について追加しました
  • lxc.container.conf の man に create=dir と create=file についての説明を追加しました
  • -P のロングオプションをドキュメントに追加しました
  • lxc-create(1) に 'loop' バッキングストアオプションを追加しました
  • -P lxcpath と --version オプションを lxc-ls の man ページに追加しました
  • lxc-start-ephemeral(1) に '--storage-type' オプションを追加しました
  • lxc-ls(1) に -P と --version の説明を追加しました
  • man の共通オプションに --version の説明を追加しました
  • lxc-start-ephemeral(1) に 'attach' の使用に関する説明を追加しました
  • man ページの veth の説明をわかりやすくしました
  • lxc.container.conf(5) の lxc.group の誤訳を修正しました
  • CONTRIBUTING を更新しました
  • lxc-user-nic(1) で使われていない共通オプションの説明を削除しました
  • 日本語 man ページで翻訳されていなかったセクションタイトルを翻訳しました
  • MAINTAINERS の更新
  • lxc-autostart(1) の説明を更新しました

バインディング :

  • lua: 5.3 互換コードを修正しました
  • lua: blkio がない場合にクラッシュする問題を修正しました
  • lua: 5.3 互換に関して小さな修正を行いました

テスト :

  • Travis CI の cgmanager サポートを有効にしました
  • lxc-test-apparmor: 子プロセスが終了する前にパイプをフラッシュするようにしました
  • lxc-test-symlink: 絶対パスのシンボリックリンクを使ったテストを追加しました
  • Travis の設定を更新しました
  • /proc/self/cgroups でなく 'cgm listcontrollers' を使うようになりました

設定 :

  • lxc-net.conf: 停止時の処理中で set +e するようにしました

テンプレート :

  • lxc-alpine: 移植性を高めるために GNU BRE 拡張の使用を避けるようにしました
  • lxc-alpine: マウント前に /dev/shm を作成するようにしました
  • lxc-alpine: apk.static バイナリの検証を修正しました
  • lxc-alpine: オプションのパースに getopt を使うようになりました
  • lxc-alpine: 最新リリースの検出に yaml を使うようになりました
  • lxc-altlinux: "--clean" オプションのパースで引数を取らないように修正を行いました
  • lxc-altlinux: -z オプションでのチェックの際に、変数が未設定の場合に備えてクオートするようにしました
  • lxc-archlinux: systemd-sysctl サービスの修正を行いました
  • lxc-busybox: 非特権コンテナの修正を行いました
  • lxc-centos: yum --releasever に対する信頼性の高いチェックを追加しました
  • lxc-{centos|fedora}: --rootfs の値を使用するようになりました
  • lxc-centos: CentOS 7 でログインまでに非常に時間がかかる問題を修正しました
  • lxc-centos: CentOS 6 コンテナのブートの問題を修正しました
  • lxc-centos: "--clean" オプションのパースで引数を取らないように修正を行いました
  • lxc-centos: ヘルプにタブとスペースが混ざっているのを修正しました
  • lxc-centos: yum に releasever パラメータを与えるようにしました
  • lxc-centos: -z オプションでのチェックの際に、変数が未設定の場合に備えてクオートするようにしました
  • lxc-centos: ifcfg-eth0 中の DHCP_HOSTNAME に hostname の値を使うようにしました
  • lxc-debian: dpkg のマルチアーキ対応のチェック方法を変更しました
  • lxc-debian: $GREP_OPTIONS が設定されている場合は debootstrap が失敗していたのを修正しました
  • lxc-debian: Usage に "--clean" を追加しました
  • lxc-debian: dbus がインストールされていない場合のエラーを修正しました
  • lxc-debian: "--clean" オプションのパースで引数を取らないように修正を行いました
  • lxc-debian: ヘルプの改良
  • lxc-debian: -z オプションでのチェックの際に、変数が未設定の場合に備えてクオートするようにしました
  • lxc-debian: ロケールの再設定を行うようにしました
  • lxc-debian: unstable/sid の場合はセキュリティアップデートをスキップするようにしました
  • lxc-debian: stretch (Debian 9) イメージのサポートを追加しました
  • lxc-debian: dpkg がマルチアーキサポートかどうかチェックするようになりました
  • lxc-download: ヘルプの typo の修正
  • lxc-download: ヘルプの改良
  • lxc-download: --list をもっと便利にしました
  • lxc-fedora: "--mask-tmp" のサポートを追加しました
  • lxc-fedora: デフォルトを 22 にしましたが、20 の squashfs を使います
  • lxc-fedora: 22 は yum を使わないので、デフォルトを Fedora 21 にしました
  • lxc-fedora: "--clean" オプションのパースで引数を取らないように修正を行いました
  • lxc-fedora: fedora21 では fedora-repos パッケージが必要なので追加しました
  • lxc-fedora: ヘルプテキストを 80 カラムに揃えました
  • lxc-fedora: セカンダリアーキテクチャも扱えるようにしました (訳注:セカンダリアーキテクチャについてはFedoraProjectのWikiを参照)
  • lxc-fedora: -z オプションでのチェックの際に、変数が未設定の場合に備えてクオートするようにしました
  • lxc-fedora: systemd を使っている場合、lxc.kmsg = 0 を設定するようにしました
  • lxc-gentoo: veth をひとつだけ持っている場合は hwaddr を追加するようにしました
  • lxc-gentoo: /dev/shm を tmpfs としてマウントするエントリを追加しました
  • lxc-gentoo: dev/mqueue と dev/shm の作成の問題を修正しました
  • lxc-gentoo: --auth-key フラグの問題を修正しました
  • lxc-gentoo: wget の問題を修正しました
  • lxc-openmandriva: "--clean" オプションのパースで引数を取らないように修正を行いました
  • lxc-openmandriva: -z オプションでのチェックの際に、変数が未設定の場合に備えてクオートするようにしました
  • lxc-opensuse: 12.3 はもうすぐ EOL なのでデフォルトリリースを 13.1 に変更しました
  • lxc-opensuse: 不適切なビルドパッケージがインストールされている場合のみ、13.2/Thmbleweed 上での openSUSE コンテナの構築を無効化しました
  • lxc-opensuse: "--clean" オプションのパースで引数を取らないように修正を行いました
  • lxc-opensuse: -z オプションでのチェックの際に、変数が未設定の場合に備えてクオートするようにしました
  • lxc-opensuse: ビルドバージョンの検出に rpm を使うようにしました
  • lxc-oracle: /dev/shm の修正を行いました
  • lxc-ubuntu-cloud: コンテナが作成されないときに 0 で終了しないようになりました
  • lxc-ubuntu-cloud: tar.gz を tar.xz に置き換えました。tarball がない場合の自動生成を行わないようにしました
  • lxc-ubuntu: lucid のサポートをやめ、リリースリストを更新しました

コマンド :

  • いくつかの実行ファイルのヘルプの文法を修正しました
  • lxc-autostart: 壊れた出力を修正しました
  • lxc-checkconfig: バージョン 3 以上のカーネルで動作するように更新しました
  • lxc-create: テンプレートの絶対パスを与えた場合の -h オプションの問題を修正しました
  • lxc-create: --template オプションが必須になりました
  • lxc-destroy: overlayfs を使ったコンテナでもきちんと動作するようになりました
  • lxc-start: pid パラメータを追加しました (訳注:pid 名前空間も保持できるようになりました。ライブラリ側の変更点のような気がします)
  • lxc-start-ephemeral: pep-8 準拠と pyflakes3 を通すための修正
  • lxc-start-ephemeral: overlayfs の workdir オプションを扱えるようになりました
  • lxc-start-ephemeral: パスワードを直接パースするようにしました
  • lxc-usernsexec: ファイルディスクリプタ 0,1,2 を別々に再オープンするようになりました

これらの stable の修正は 59 名のコントリビュータによってなされました。

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。そして、各ディストリビューションがすぐに LXC 1.0.8 のパッケージをリリースするでしょう。

個々の変更点に興味がある場合、そして開発の履歴を見たい場合、stable ブランチは GitHub にあります。