News

LXC 6.0.3 LTS リリースのお知らせ

2024/12/19

はじめに

LXC チームが LXC 6.0.3 LTS のリリースをお知らせします!

このリリースは、LXC 6.0 の 3 度目のバグフィックスリリースで、2029 年 6 月までサポートされます。

変更点

いつもどおり、このバグ修正リリースは、安定性とセキュリティ強化にフォーカスを当てています。

このリリースのハイライトは次のとおりです:

  • lxc-oci に PuzzleFS のサポートを追加
  • lxc.init を通した SIGHUP の伝搬
  • 64 ビット Arm サポートを含む、テストスイートの再構築

コミットのすべてのリストは次のとおりです(翻訳なし):

すべてのChangeLogを見る
  • meson.build: add -ffat-lto-objects
  • meson.build: drop suggest-attribute=noreturn build option
  • Add suppport for PuzzleFS images in the oci template
  • create_run_template: don't use txtuid and txtguid out of scope
  • Avoid null pointer dereference when using shared rootfs. rootfs->storage not set by lxc_storage_prepare when using a shared rootfs.
  • meson: fix minor typo
  • lxc-net: Replace random IPv6 subnet
  • fix return code of recursive all of cgroup_tree_prune
  • lxccontainer: fix enter_net_ns helper to work when netns is inherited
  • lxc.init: Switch to sigaction
  • lxc.init: Ignore user signals coming from inside the contianer
  • lxc.init: Allow SIGHUP from outside the container
  • github: Update coverity workflow
  • github: Introduce shared build logic
  • github: Introduce shared testsuite logic
  • github: Rework test workflow
  • github: Cleanup OSS-fuzz
  • github: Improve progress reporting

サポートとアップグレード

LXC 6.0 ブランチは 2029 年 6 月までサポートされます。
Stable 版のバグ修正リリースには、バグ修正とセキュリティの問題の修正のみが含まれます。このため、常に最新のバグ修正リリースを実行し、セキュリティーを確保することが安全であり、推奨されます。

ダウンロード

感謝

この LTS リリースアップデートは、Sovereign Tech Fund(現在は Sovereign Tech Agency の一部)からの資金提供により実現しました。

ST-Fund-Logo-Default-White-RGB|690x219

Sovereign Tech Fund は、オープンデジタルインフラストラクチャーの開発、改良、保守をサポートします。その目標は、セキュリティ、レジリエンス、技術の多様性、コードの背後にいる人々に焦点を当て、オープンソースエコシステムを持続的に強化することです。

詳細は https://www.sovereign.tech をご覧ください。

LXC 6.0.2 LTS リリースのお知らせ

2024/09/17

はじめに

LXC チームが LXC 6.0.2 LTS のリリースをお知らせします!

このリリースは、LXC 6.0 の 2 度目のバグフィックスリリースで、2029 年 6 月までサポートされます。

変更点

いつもどおり、このバグ修正リリースは、安定性とセキュリティ強化にフォーカスを当てています。

このリリースのハイライトは次のとおりです:

  • 一般的なメッセージのいくつかのログレベルを下げました
  • aarch64 でのコンパイルエラーの修正

コミットのすべてのリストは次のとおりです(翻訳なし):

すべてのChangeLogを見る
  • Remove unused function
  • idmap: Lower logging level of newXidmap tools to INFO
  • Exit 0 when there's no error
  • doc: Fix definitions of get_config_path and set_config_path
  • README: Update security contact
  • fix possible clang compile error in AARCH

サポートとアップグレード

LXC 6.0 ブランチは 2029 年 6 月までサポートされます。
Stable 版のバグ修正リリースには、バグ修正とセキュリティの問題の修正のみが含まれます。このため、常に最新のバグ修正リリースを実行し、セキュリティーを確保することが安全であり、推奨されます。

ダウンロード

LXC 6.0.1 LTS リリースのお知らせ

2024/06/27

はじめに

LXC チームが LXC 6.0.1 LTS のリリースをお知らせします!

このリリースは、LXC 6.0 の最初のバグ修正リリースで、2029 年 6 月までサポートされます。

変更点

いつもどおり、このバグ修正リリースは、安定性とセキュリティー強化にフォーカスを当てています。

このリリースのハイライトは次のとおりです:

  • いくつかのビルドツールの問題の修正
  • IPv6 をサポートしないシステム上の起動失敗の問題を修正
  • 潜在的な警告を防ぐため、AppArmor のルールを更新

コミットのすべてのリストは次のとおりです:

すべてのChangeLogを見る
  • meson: fix build on NixOS
  • github: test the lxc multicall binary builds too
  • lxc/network: handle non-existing sysctl /disable_ipv6
  • network: netdev_configure_server_veth: reduce scope of disable_ipv6_fd/path vars
  • Update lxc-attach.sgml.in
  • Update lxc-execute.sgml.in
  • Update lxc-{attach,execute}.sgml.in
  • Update lxc-execute.sgml.in
  • lxc-local: fix use of LXC_PATH before init
  • lxc-local: fix incorrect path to templates file
  • lxc-local: remove check for template existence before extraction
  • apparmor: fix rule path pattern specification syntax
  • apparmor: regenerate rules
  • apparmor: use /{,} instead of /
  • apparmor: regenerate rules
  • github: start using ubuntu-24.04
  • github: properly check apparmor profile changes
  • lxc/storage/zfs: ignore false-positive use-after-free warning
  • github: exclude clang & ubuntu-24.04 combination
  • meson: fix build with -Dtools-multicall=true on NixOS
サポートとアップグレード

LXC 6.0 ブランチは 2029 年 6 月までサポートされます。
Stable 版のバグ修正リリースには、バグ修正とセキュリティの問題の修正のみが含まれます。このため、常に最新のバグ修正リリースを実行し、セキュリティーを確保することが推奨されます。

ダウンロード

LXC 6.0 LTS リリースのお知らせ

2024/04/03

はじめに

LXC チームが LXC 6.0 LTS のリリースをお知らせします!

これは LXC 5.0 のリリース以来 2 年の作業の成果です。そして、LXC プロジェクトの 6 回目の LTS リリースです。このリリースは 2029 年 6 月までサポートされます。

ハイライト

新しいマルチコールバイナリー

新しく tools-multicall=true 設定オプションを使って、単一の lxc バイナリーを生成し、他のすべての lxc-XYZ コマンドからシンボリックリンクすることができます。

これにより、大幅にディスクスペースを削減でき、特に組み込みプラットフォームで有用です。

ライブラリーへの set_timeout 関数の追加

新しい set_timeout 関数が lxc_container 構造体で利用可能になりました。LXC モニターとのやりとりのグローバルなタイムアウトを設定できるようになりました。

これまではタイムアウトがなく、モニターリクエストをキャンセルする方法もないため、デッドロックする可能性がありました。

この新しいシンボルをライブラリーに追加した結果、liblxc のシンボルバージョンが 1.8.0 に上がりました。

LXC ブリッジで IPv6 が有効に

デフォルトの lxcbr0 ブリッジは、IPv6 ULA サブネットを使い、デフォルトで IPv6 が有効になりました。

lxc-usernsexec の uid/gid 選択のサポート

lxc-usernsexec ツールに、ユーザーが使いたい UID と GID それぞれを制御するための -u-g オプションが追加されました(デフォルトは 0/0 です)。

lxc-checkconfig の改良

lxc-checkconfig は、(失敗するのではなく)lxc-start が存在するときだけ、バージョンを表示するようになりました。
さらに、各 Namespace タイプごとに使える名前空間の最大数をリストするだけでなく、その他の見た目の改良も多数行われています。

squashfs OCI イメージのサポート

ビルトインの oci コンテナテンプレートは、atomfs を使用し、squashfs 圧縮された OCI イメージを処理できるようになりました。

systemd の dbus から dbus-1 への変更

LXC は systemd との DBus でのやりとりに libsystemd ではなく、libdbus-1 を使うようになりました。
この理由は、libdbus-1 は静的ビルドですぐに使えるためです。

Upstart サポートの削除

ついに init システムとして Upstart のサポートが削除されました。

この削除は、現段階では誰にも影響しないはずです。そして、リポジトリーからいくつかのロジックと構成ファイルをクリーンアップできます。

すべての変更点(翻訳なし)

すべてのChangelogを見る
  • Read list until process exits
  • lxccontainer: improve mod_rdep()
  • lxccontainer: rework copy_file()
  • meson: Generate compile commands by iterating over an array
  • tools: Provide multicall lxc binary
  • meson: Set DEVEL flag post release
  • Fix uninitialized read in parse_cap when libcap is not used
  • use systemd dbus StartTransientUnit for unpriv cgroup2
  • fix for issue 4026: set broadcast to 0.0.0.0 for /31 and /32
  • conf: log file descriptors on error during idmapped mount setup
  • start: don't overwrite file descriptors during namespace preservation
  • start: record inherited namespaces earlier to make it available for idmapped rootfs setup
  • conf: fix append_ttyname()
  • start: fix namespace sharing
  • add check for statvfs
  • Fix off-by-one error constructing mount options
  • Store mount options in correct variable
  • meson: add remaining still-in-use config checks
  • src/lxc/log.h: fix STRERROR_R_CHAR_P
  • meson.build: fix build with -Dcapabilities=false
  • meson.build: fix build without stack-protector
  • README: update security mails
  • lxc-usernsexec: allow to select which {g,u}id to switch to
  • gitignore: Simplify
  • build: detect where struct mount_attr is declared
  • build: detect sys/pidfd.h availability
  • build: check for FS_CONFIG_* header symbol in sys/mount.h
  • meson.build: allow explicit distrosysconfdir
  • tree-wide: wipe direct or indirect linux/mount.h inclusion
  • tree-wide: use struct clone_args directly
  • tree-wide: use struct open_how directly
  • meson: fix docbook2x detection
  • tree-wide: minimize liburing.h inclusion
  • mount: move mount utilities from syscall_wrappers.h into mount_utils.h
  • mount_utils: remove conf.h include
  • build: prevent the inclusion of linux/mount.h with a hack
  • tree-wide: split open helpers into open_utils.h
  • use sd_bus_call_method_async to replace the asyncv one
  • fix error message when use tools with -? option
  • Update cifuzz.yml
  • build(deps): bump actions/checkout from 2 to 3
  • conf: allow cross-device links
  • Update README.md
  • lxc-attach: Fix lost return codes of spawned processes that are killed
  • lxc/attach: Detect EACCES from execvp and convert to 126 exit status
  • build: add libsystemd to oss fuzz dependencies
  • tools: lxc-destroy: update help message for --force
  • tests: lxc-test-checkpoint-restore: use trap to do cleanup
  • Unroll IN_SET since the max usage is 2 elements check
  • cgroups: fix -Waddress warning
  • build: fix handling of dependancies to fix build on openSUSE
  • build: only build init.lxc.static if libcap is statically linkable
  • build: use cc.get_define to detect FS_CONFIG_* symbols
  • build: drop build-time systemd dependency
  • src/lxc/meson.build: fix the static library path
  • tests: lxc-test-reboot: Fix build on ia64
  • meson.build: strip newlines from git output
  • meson.build: strip newline for variable assignments
  • README: remove lgtm
  • cgroups: use userns_exec_full() during cgroup removal
  • cgroups: only allocate user namespace if we have to
  • conf: create separate peer group for container's root
  • apparmor: allow shared mounts in start-container.in
  • conf: ensure mount tunnel is a dependent mount
  • github: fix coverity build
  • github: fix coverity (add libpam-dev)
  • apparmor: properly check lxc_strmmap ret value
  • network: always initialize struct nl_handler
  • cgroups: fix buffer out-of-bounds access in enable_controllers_delegation
  • cgroups: check snprintf retval in unpriv_systemd_create_scope
  • state: additional check in lxc_wait to prevent OOB
  • cgroups: fix cgroup layout detection in __initialize_cgroups
  • src/lxc/meson.build: fix build without apparmor
  • checkconfig: Fix mixed tabs/spaces
  • checkconfig: Hide version if no lxc-start
  • checkconfig: Tweak layout
  • checkconfig: Tweak cgroup handling
  • checkconfig: Fix filesystem capability check
  • build: force linking against liblxc
  • Patching an incoming CVE (CVE-2022-47952)
  • lxc_user_nic: fix get_mtu() error handling
  • lxc-default-cgns apparmor profile: allow overlay mounts
  • Fix build error on sparc64 caused by using the gold linker
  • drop broken lxc-test-fuzzers
  • Fix typo: bev_type -> bdev_type
  • Fix strlcat's return value checks
  • lxc-net.in: fix nftables syntax for IPv6 NAT
  • initutils: use PRIu64 for uint64_t in setproctitle
  • apparmor: don't try to mmap empty files
  • Add support for squashfs images in oci via atomfs
  • Allow fuse mounts in apparmor start-container.
  • tree-wide: convert fcntl(FD_CLOEXEC) to SOCK_CLOEXEC
  • switch from libsystemd's dbus to dbus-1
  • console-log test: make sure container is stopped before restarting
  • lsm: apparmor: allow to change mount propagation
  • make setproctitle()'s /proc/pid/stat parsing safe
  • setproctitle(): Handle potential NULL return from strrchr()
  • file_utils: rename fd_make_nonblocking to fd_make_blocking
  • file_utils: add fd_make_nonblocking helper
  • terminal: make a terminal FDs non-blocking
  • mainloop: io_uring: disable IORING_POLL_ADD_MULTI
  • lxccontainer: extend lxccontainer API with set_timeout
  • commands: support timeout in LXC_CMD_GET_STATE
  • rename functions which clash with libsystemd's
  • src/tests: Fix container creation errors
  • tests: fix parse_config_file seccomp test
  • explicitly convert *mainloop_handler to __u64
  • github: Add DCO/target tests
  • Add libarchive tar support for lxc download
  • get_hierarchy: dont WARN about no usable controller
  • CONTRIBUTING: add a note on AI generated code
  • github: Update for main branch
  • Fix start api call to split quoted strings in execute or init command.
  • Update console perms to 0600
  • Remove references to LXD
  • lxccontainer.h: Move new fields to the end
  • build(deps): bump actions/checkout from 3 to 4
  • containers in the FREEZING state also need to be unfreeze
  • lxc/lxccontainer: fix do_lxcapi_set_timeout retval
  • lxc/checkconfig: replace cat | grep with grep
  • lxc/checkconfig: replace type by command
  • lxc/checkconfig: remove some unneeded echo -n
  • lxc/checkconfig: add missing quotes to please shellcheck
  • lxc/checkconfig: replace ! -z by -n (SC2236)
  • lxc/checkconfig: check exit code directly (SC2181)
  • lxc/checkconfig: remove superfluous (..) around test command (SC2234)
  • lxc/checkconfig: avoid subshell (SC2235)
  • lxc/checkconfig: minor cosmetic change
  • lxc/checkconfig: replace echo -n by printf
  • lxc/checkconfig: use multiline echo
  • reset root_nsuid_map and root_nsgid_map when idmaps is cleared
  • meson: Remove support for upstart
  • hooks/ubuntu-cloud-prep: remove upstart handling
  • doc: remove the warning mentionning upstart
  • config/init: Drop upstart files
  • conf: fix ephemeral copies
  • don't try to delete vlan 0 from veth
  • Disable IPv6 link-local addresses for bridged veth
  • lxc-local: Change LXC_CONFIG to LXC_METADATA to match args and be more clear
  • lxc-local: Improve usage info
  • lxc-local: Re-organize code to use more functions
  • lxc-local: Add --no-dev option to exclude /dev from the fstree
  • config: try to create workdir if not exist
  • build(deps): bump actions/upload-artifact from 3 to 4
  • Add loongarch64 support
  • build: add more options for customizing install
  • Align columns in lxc-download.in template
  • Add verbose output in download template.
  • Fix error message.
  • tree-wide: use container_uses_namespace() helper
  • tree-wide: use container_uses_namespace() in less trivial cases
  • lxc-download, lxc-local: preserve xattrs on unpack
  • Add x32 to the list of recognized architectures
  • test-usernic: don't use ifconfig
  • lxc-test-usernic: drop cgroup handling
  • oci: resolve cross-filesystem blob caching failure
  • tests: lxc-test-usernic: use iproute tool instead of brctl
  • config: apparmor: add AppArmor profile for lxc-copy
  • tests: remove old and broken cgroup handling code from tests
  • confile: move lxc_fill_elevated_privileges() to tools/lxc_attach
  • meson: introduce IN_LIBLXC preprocessor macro
  • confile: unhide lxc_config_define*() helpers
  • conf: reorganize/split code to idmap_utils.c
  • conf: reorganize/split code to utils.c
  • confile: unhide lxc_config_parse_arch() helper
  • storage_utils: unhide and rename is_valid_storage_type to lxc_is_valid_storage_type
  • storage_utils: move get_fssize to utils
  • network: use IN_LIBLXC
  • meson: link with liblxc dynamically everywhere if possible
  • github: master -> main
  • tests/meson: attempt to fix ossfuzz builds
  • lxc-net: Enable IPv6 by default
  • lxc-unshare: fix an buffer overflow issue in lxc_unshare
  • unshare: simplify lookup_name
  • README: Correct 'armvl7' to 'armv7l'
  • rexec: Avoid invalid free in rexec failure path
  • src/lxc/syscall_numbers.h: drop define -1
  • Revert "lxccontainer: fixes"
  • lxccontainer: improve mod_rdep()
  • lxccontainer: rework copy_file()
  • tree-wide: replace multiply_overflow with check_mul_overflow
  • tests/parse_config_file: add tests for lxc.time.offset.*
  • tests/parse_config_file: fix some typos
  • lxc/confile: do not print newline symbol in getter for lxc.time.offset.*
  • lxc/confile: do not print excess space before scale suffix for time.offset.boot
  • lxc/lxccontainer: specify file mode in open() call inside mod_rdep
  • tools/lxc_autostart: don't fail when there are no containers
  • lxc/tools: set default log_priority to ERROR
  • lxc-ls: list names with whitespaces in --active.
  • lxc-checkconfig: Show namespace limits
  • lxc-checkconfig: Fix shellcheck
  • MAINTAINERS: Remove Dwight from the maintainer list
  • COPYING: Remove whitespace
  • config/yum: Use SPDX header
  • template: Use SPDX
  • lxc.spec: Use SPDX
  • lxc.spec: Clear default changelog
  • hooks: Add SPDX headers
  • src/tests: Add SPDX headers
  • src/include: Add SPDX headers
  • doc: Add SPDX headers and remove Author field
  • COPYING: Clarify licensing of files without SPDX
  • meson: Align SPDX license id
  • Makefile: Align SPDX license id
  • lxc.spec: Align SPDX license id

サポートとアップグレード

LXC 6.0 は 2029 年 6 月までサポートされる、最新の LTS リリースです。LXC 5.0 は、より遅いメンテナンスペースに変更され、重要なバグ修正とセキュリティ更新のみが行われます。

LXC のユーザーはすべて、6.0 ブランチをアップグレードを計画することを強くおすすめします。

今後のリリースについて

ユーザーが新しい LXC の機能をより簡単に利用できるように、今後は LTS ではないリリースの作成を開始することにしました。計画している間隔は 6 ヶ月ごとで、LXC 6.1 は 10 月に予定されています。

この LTS ではないリリースでは、安定性、サポート、セキュリティメンテナンスに関する LTS の保証は受けられず、次のリリースが出るまでのみサポートされます。

本番環境のユーザーは LTS リリースを利用し続けたいと思うでしょう。

ダウンロード

コントリビューター

LXC 6.0 は、合計 56 名のコントリビューターによりリリースされました。

LXC 5.0.3 LTS リリースのお知らせ

2023/07/25

はじめに

LXC チームが LXC 5.0.3 のリリースをお知らせします!

このリリースは LXC 5.0 の 3 回目のバグ修正リリースです。このリリースは 2027 年 6 月までサポートされます。

バグ修正

いつも通り、このバグ修正リリースは安定性とハードニングにフォーカスを当てています。

このリリースのいくつかのハイライトは次の通りです:

  • IPv6 NAT の nftables シンタックスの修正
  • squashfs OCI イメージのサポートを追加
  • io_uring で LXC を実行する際の修正

コミットの全リストは次の通りです(翻訳なし):

すべてのChangeLogを見る
  • drop broken lxc-test-fuzzers
  • Fix typo: bev_type -> bdev_type
  • Fix strlcat's return value checks
  • lxc-net.in: fix nftables syntax for IPv6 NAT
  • initutils: use PRIu64 for uint64_t in setproctitle
  • apparmor: don't try to mmap empty files
  • Add support for squashfs images in oci via atomfs
  • Allow fuse mounts in apparmor start-container.
  • tree-wide: convert fcntl(FD_CLOEXEC) to SOCK_CLOEXEC
  • console-log test: make sure container is stopped before restarting
  • make setproctitle()'s /proc/pid/stat parsing safe
  • setproctitle(): Handle potential NULL return from strrchr()
  • file_utils: rename fd_make_nonblocking to fd_make_blocking
  • file_utils: add fd_make_nonblocking helper
  • terminal: make a terminal FDs non-blocking
  • mainloop: io_uring: disable IORING_POLL_ADD_MULTI
  • rename functions which clash with libsystemd's
  • src/tests: Fix container creation errors
  • tests: fix parse_config_file seccomp test
  • explicitly convert *mainloop_handler to __u64
  • github: Add DCO/target tests
  • get_hierarchy: dont WARN about no usable controller
  • CONTRIBUTING: add a note on AI generated code
  • github: Update for main branch

サポートとアップグレード

LXC 5.0 ブランチは 2027 年 6 月までサポートされます。
stable のバグフィックスリリースでは、バグとセキュリティに関する問題に対する修正のみが行われますので、常に安全です。最新のバグフィックスリリースの状態を維持し、実行することをおすすめします。

ダウンロード

以前のニュース