Back to the news overview

LXC 1.0.9 リリースのお知らせ

2016/11/23

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

重要な変更:

  • セキュリティホール CVE-2016-8649 の修正

バグ修正:

  • doc: lxc-create(1) の "-t" オプションを必須としました
  • ubuntu-cloud: 様々な修正を行いました
  • coverity: cgmanager の NULL ポインタ参照を回避しました
  • プロジェクト全体で /usr/bin/python3 の代わりに /usr/bin/env python3 を使うようにしました
  • Debian archive GPG キーリングが使えない時は取得するようにしました
  • preserve_ns 関数の動作を改良しました (訳注: /proc/self/ns 以下のファイルを取得してopenする際のエラーログが細かくでるようになった)
  • lxc_container struct: 構造体のメンバを足すときに、メンバの順序を変えないよう注意書きをコメントに追記しました
  • debian: キャッシュがない場合のコンテナ生成のバグを修正しました
  • lxc: lxc-start が wlan phys をサポートしました
  • apparmor: lxc.aa_profile = unchanged をサポートしました
  • seccomp: arm64 上の 32bit arm と ppc64 上の 32bit ppc をサポートしました
  • ARM と PPC に対しては条件付きのコンパイルを行うようにしました (訳注: それぞれをサポートする環境のみ関係するコードをコンパイルする)
  • prune_init_cgroup: NULL を参照しないようにしました
  • 展開されていない設定をクリアする際に 'lxc.mount.entry' が正しくクリアされない問題を修正しました
  • 上記の lxc.mount.entry の問題の Fix に伴う get_item テストの更新
  • seccomp プロファイルが定義されていないコンテナの attach 時の問題を修正しました
  • root で実行されていない場合、save_phys_nics 関数は即座にリターンするようになりました
  • lxc-checkconfig: zgrep に依存しなくなりました
  • 条件付きコンパイルのリファクタリングを行いました
  • swap の計算を修正しました
  • python-lxc: コンテナにアタッチした後に PyOS_AfterFork を呼ぶようにしました
  • ifaddrs.c 内でのバッファオーバーフローを修正しました
  • 値のない lxc.cap.drop の動作をドキュメントにしました
  • nlmsg_reserver() が NULL を返した場合に NULL ポインタを参照する問題を修正しました
  • apparmor による制限がされている場合には aa ラベルを変更しようとしないようにしました
  • coverity: preserve_ns は bool を返すので、int が返ることを期待するコードになっていたのを修正しました
  • apparmor: 'unconfined' ラベルを unconfined と認識するようになりました
  • bash completion: 'have' コマンドが廃止され '_have' になったので修正しました
  • ipv6_gateway を削除した場合に正しく NULL を設定するようにしました
  • stop フックで継承された fd を保存するようになりました
  • エラーメッセージで null 文字列を表示しないようにしました
  • Fedora テンプレート内のコメントを修正しました
  • リスト形式で指定するオプションの動作をドキュメントに明記しました
  • Python 製 lxc-ls でのロックパスの削除を修正しました
  • ネットワークの設定値をクリアする方法をドキュメントに記載しました
  • open_without_symlink: (訳注: パスをopenするユーティリティ関数で) prefix として与える文字列が空である場合も適切に処理するようになりました
  • lxc_setup_fs: /dev/shm が存在しない場合は作成するようになりました
  • cgmanager: tasks と cgroup.procs ファイルを chmod +x しなくなりした
  • cleanup: lxc_container::want_* 関数の説明コメントを更新しました
  • fedora テンプレート内の echo 行を修正しました
  • ${UTSNAME} は定義されていないので代わりに ${utsname} を使うようにしました
  • '.' ではじまる名前のコンテナを無視するようになりました
  • /dev のサイズを 500k に増やしました ( issue #781)
  • cgfs: パスから "init.scope" を削除するようにしました
  • apparmor: /run/{,lock} -> /var/run/{,lock/} への bind mount を許可しました
  • log.c:__lxc_log_set_file: (訳注: ログファイル名を表す引数) fname に NULL は許可されなくなりました
  • log.c:__lxc_log_set_file: (訳注: デフォルトのログファイルパスを) 上書きする際、ログファイルを完全にクローズするようにしました
  • mountall が sysfs を再マウントできるようになりました
  • cgroups: device cgroup の設定が EPERM で失敗した場合には処理が失敗しなくなりました
  • cgfs: devices cgroup に書き込む時は EACCES もチェックするようにしました
  • lxc: cgfs: lxcfs を扱うようになりました
  • lxc manpage の typo を修正しました
  • cgfs: 有効な cgroup のマウントポイントを確実に使うようにしました
  • cgfs: 冗長な出力を減らしました
  • doc: lxc-attach(1) の日本語 man を改良しました
  • doc: lxc-unshare(1) を改良しました
  • open_without_symlink: ELOOP 以外のエラーでは SYSERROR とならないようになりました
  • lxc-busybox: コンテナ rootfs 内で /etc/fstab を touch するようにしました
  • sync: 他のプロセスからのエラーをレポートするために LXC_SYNC_ERROR を追加しました
  • start: エラーをレポートするために LXC_SYNC_ERROR を使うようになりました
  • lxc-busybox: ダイナミックリンクされた Busybox に対する警告を削除しました
  • out-of-tree (VPATH) ビルドの際のインストールの問題を修正しました
  • デフォルトの Debian のミラーとして httpredir.debian.org を使うようにしました
  • Ubuntu の debootstrap 用に常にデフォルトのミラーを定義するようにしました
  • lxc-ubuntu: secondary アーキテクチャでのイメージビルドの問題を修正しました
  • Debian のリリース名を更新しました
  • btrfs_recursive_destroy を修正しました (訳注: 4.2 kernel 以降で非特権コンテナの場合にlxc-destroyが失敗していたのを修正)
  • ioctl 直後に errno を保存するようにしました
  • man page の Typo の修正 (Debian のlintian で発覚)
  • netlink_open: エラー時にソケットをクローズするようにしました
  • lxc_mount_auto_mounts(): 失敗時にメモリを解放するようにしました
  • doxygen が生成する一時ファイルを無視するようにしました
  • LXC_GENERATE_DATE でより良い日付フォーマットを使うようになり、SOURCE_DATE_EPOCH をサポートするようになりました
  • lxc.service.in から廃止された syslog.target を削除しました
  • メンテナを更新しました
  • lxc-checkconfig で標準出力がターミナルかどうかチェックするようになりました
  • Container.__init__ が失敗したとき PyErr を設定するようになりました
  • lxc_list_nicconfigs でキーとして type を追加しました
  • lxc-alpine: DHCP クライアントに強制的にホスト名を送るようにしました
  • sync: 想定外のメッセージサイズの時に失敗するようになりました
  • sync.c: 正しい型を使うようになりました (訳注: コード内の変数宣言の話)
  • lxc-centos: RHEL 7+ の時に ID = rhel の場合の処理を追加しました
  • userns のマッピングを設定した後に netns を unshare するようになりました
  • 設定ファイルの設定値をクオートできるようになりました
  • Fuse ファイルシステム用に fstype=fuse も許可されるようになりました (訳注: AppArmor の Fuse 用ルールに mount fstype=fuse を追加)
  • alpine テンプレートのネットワークインターフェース設定内の hostname 設定を修正しました
  • in6_addr が複数回定義されてしまう問題を修正しました
  • lxc-debian: init が必ずインストールされるようにしました
  • plamo: テンプレートを改良しました (訳注: 不要なパッケージの削除、起動サービスを最小限に)
  • AppArmor: lxc-start に対してマウントオプション make-rslave のルールを追加しました
  • Bionic ですべての lxcmntent.h の関数が宣言されるようにしました
  • lxc-debian: wheezy コンテナを作成する際に init が確実にインストールされるように修正しました
  • vlan タイプのインターフェースで MTU を設定できるようになりました
  • templates: locale が設定されていないことが原因の perl のノイジーな警告出力を防ぎました (訳注: Debian テンプレート)
  • lxc.pc に prefix を追加しました
  • conf: pty_info を解放したあと NULL に設定するようにしました
  • apparmor: 生成されたファイルをリフレッシュしました
  • tools: lxc-create の出力で抜けていた newline を追加しました
  • (訳注: lxc-download テンプレート内でダウンロード用の鍵で) long ID の代わりに full の GPG フィンガープリントを使うようになりました
  • utils: mips 用の signalfd システムコール番号を追加しました
  • seccomp: MIPS で seccomp を扱えるようにしました
  • seccomp: lxc_config_parse_arch に mips と mips64 のエントリを追加しました
  • seccomp: strerror() を修正しました (訳注: strerror に与える引数の修正)
  • confile: より多くのアーキテクチャを扱えるように lxc_config_parse_arch() 関数に定義を追加しました
  • seccomp: s390x のサポートを追加しました
  • seccomp: 複数回の include 指定を削除し、include の順序を整列させました
  • seccomp: 動作と関係ない変更を行いました (訳注: ソースコードのフォーマット、ログ出力の整形など)
  • templates: fedora テンプレート実行時に openssl コマンドがない場合にインストールするようにしました
  • doc/api/Doxyfile に FULL_PATH_NAMES=NO を設定しました
  • console: 正しいログファイル名を使うようにしました
  • lxczfs: 細かな修正を行いました
  • rsync に sparse ファイルを効率的に扱わせるようにしました
  • ppc64el の場合に lxc-create -t debian が失敗するのを修正しました
  • utils: lxc_string_split() を (訳注: 初期化されていないメモリ領域が返らないように) 修正しました
  • CentOS テンプレート中の "centos" という文字列を "CentOS" に修正しました
  • python のサンプルに utf-8 エンコーディングであることを明記しました
  • log: snprintf() の返り値の sanity チェックを行うようにしました
  • archlinux: eth0 上で DHCP を実行するようにしました
  • archlinux: 名前解決の修正を行いました
  • lxc_strerror() への参照を削除しました (訳注: 昔存在した関数の宣言が残っていたので削除)
  • s390x: personality の seccomp の扱いを修正しました
  • ubuntu: パッケージの更新に proc ファイルシステムが必要だったので修正しました
  • (訳注: spec ファイルの) python コードの include に python3_sitearch を使うようにしました
  • cgfs: 不正な free() を修正しました
  • cgfs: print_cgfs_init_debuginfo() を追加しました
  • cgfs: /proc/self/cgroup 内の空行をスキップするようにしました
  • tools: lxc-stop で正しい終了コードを使うようにしました
  • conf: シャットダウン時のネットワーク名前空間の移動とリネームをマージしました (訳注: シャットダウン時に物理NICをホストの名前空間に戻すときの移動とリネーム処理を単一ステップで行うようにしました)
  • (訳注: /run を指す) シンボリックリンク /var/run を作成するようにしました
  • cgfs: NULL を明確にチェックするようにしました
  • templates: lxc-ubuntu-cloud.in に squashfs サポートを追加しました
  • pkg-config が示す場所に bash completion をインストールするようになりました
  • conf: %m フォーマット指示子を使わないようにしました
  • debian: libui-dialog-perl に依存しなくなりました
  • Android でのビルドのために 'index' 関数を 'strchr' 関数に置き換えました
  • tree-wide: readdir_r() を readdir() に置き換えました
  • attach: attach するプロセスに procfd を送らないようにしました

ダウンロード

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

1.0 ユーザに対して、LXC開発元は 2.0 LTS リリースへのアップグレードを強くおすすめします。
1.0 ブランチは 2019 年 6 月までサポートが続きます。しかし現時点では、重大なバグフィックスとセキュリティホール対策のみがバックポートされます。

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