diff --git a/content/lxc/news.ja/lxc-6-0-lts-has-been-released.yaml b/content/lxc/news.ja/lxc-6-0-lts-has-been-released.yaml new file mode 100644 index 00000000..14884200 --- /dev/null +++ b/content/lxc/news.ja/lxc-6-0-lts-has-been-released.yaml @@ -0,0 +1,335 @@ +title: LXC 6.0 LTS リリースのお知らせ +date: 2024/04/03 20:04 +origin: https://discuss.linuxcontainers.org/t/lxc-6-0-lts-has-been-released/19567 +content: |- + ### はじめに + + 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` のサポートが削除されました。 + + + この削除は、現段階では誰にも影響しないはずです。そして、リポジトリーからいくつかのロジックと構成ファイルをクリーンアップできます。 + + ### すべての変更点(翻訳なし) + + [details="すべての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 + [/details] + + ### サポートとアップグレード + + LXC 6.0 は 2029 年 6 月までサポートされる、最新の LTS リリースです。LXC 5.0 は、より遅いメンテナンスペースに変更され、重要なバグ修正とセキュリティ更新のみが行われます。 + + + LXC のユーザーはすべて、6.0 ブランチをアップグレードを計画することを強くおすすめします。 + + ### 今後のリリースについて + + ユーザーが新しい LXC の機能をより簡単に利用できるように、今後は LTS ではないリリースの作成を開始することにしました。計画している間隔は 6 ヶ月ごとで、LXC 6.1 は 10 月に予定されています。 + + + この LTS ではないリリースでは、安定性、サポート、セキュリティメンテナンスに関する LTS の保証は受けられず、次のリリースが出るまでのみサポートされます。 + + + 本番環境のユーザーは LTS リリースを利用し続けたいと思うでしょう。 + + ### ダウンロード + + - リリース tarball : [lxc-6.0.0.tar.gz](https://linuxcontainers.org/downloads/lxc/lxc-6.0.0.tar.gz) + - GPG シグネチャー : [lxc-6.0.0.tar.gz.asc](https://linuxcontainers.org/downloads/lxc/lxc-6.0.0.tar.gz.asc) + + ### コントリビューター + + LXC 6.0 は、合計 56 名のコントリビューターによりリリースされました。 diff --git a/content/lxcfs/news.ja/lxcfs-6-0-lts-has-been-released.yaml b/content/lxcfs/news.ja/lxcfs-6-0-lts-has-been-released.yaml new file mode 100644 index 00000000..447b4b85 --- /dev/null +++ b/content/lxcfs/news.ja/lxcfs-6-0-lts-has-been-released.yaml @@ -0,0 +1,165 @@ +title: LXCFS 6.0 LTS リリースのお知らせ +date: 2024/04/01 04:04 +origin: https://discuss.linuxcontainers.org/t/lxcfs-6-0-lts-has-been-released/19546 +content: |- + ### はじめに + + LXCFS チームが LXCFS 6.0 LTS のリリースをお知らせします! + + + このリリースは、LXCFS 5.0 リリース以来 2 年の取り組みの結果で、LXCFS プロジェクトの 5 つ目の LTS リリースです。 + + ### ハイライト + #### 新しい `--enable-cgroup` オプション + + LXCFS は、コンテナ向けに、仮想的な cgroupfs (v1) ツリーを提供できます。 + この機能は cgroup namespace がカーネルに実装される前に実装されており、その機能がないカーネルでも、同様の機能を提供できます。 + + + 今では、サポートされているほとんどの Linux ディストリビューションは、すべて cgroup namespace をサポートするカーネルを提供しており、新しいディストリビューションのほとんどは cgroup v1 から(v2 に)切り替わっているので、この機能をデフォルトで有効にし続ける意味がありません。そのため、この機能は新しい起動時の引数である `--enable-cgroup` で有効にするようになりました。 + + #### CPU の `/sys/devices/system/cpu` での非マスク化 + + LXCFS 5.0 は、呼び出し元の cpuset で許可されている CPU をもとに、`/sys/devices/system/cpu` のエントリーをフィルタリングするロジックが存在しました。この動作は、オフラインの CPU であっても `/sys/devices/system/cpu` に表示される通常のシステムの動作を実際には反映していません。 + + + このため、LXCFS 6.0 ではこのロジックを逆転し、オンライン・オフラインの CPU のリストを最新に保つようになっただけで、個々の CPU ディレクトリーにはすべてアクセス可能なままです。 + + ### すべての変更点 + + [details="すべてのChangeLogを見る"] + - lxcfs_fuse: ensure lxcfs_fuse_compat.h is included after including fuse header + - tree-wide: remove struct stat argument from DIR_FILLER and make it static inline + - tree-wide: ensure that file information is set even with legacy fuse + - tests: add test for issue #522 + - meson: Include documentation + - workflows: disable documentation generation + - sysfs: Don't incorrectly filter entries + - tests: Fix sysfs test + - utils: add and use opathdir() + - sysfs_fuse: fix indendation + - sysfs_fuse: generate file info for cpu entries as well + - meson: bump fuse version + - github: add fuse3 tests + - meson: handle fuse versions with buggy dt_type handling + - init/meson: Use libdir instead of hardcoded /lib path + - Query systemd system unit dir. + - support explicit fuse version choice + - github: Re-organize Github Actions + - tests: Skip sysfs test on older FUSE versions + - init: Fix install paths for sysvinit and openrc + - meson: Support multiple init systems + - meson: Syntax nit + - proc_fuse: extra space in /proc/stat + - util: remove doubled comment + - sysfs: correct file size of /sys/devices/system/cpu/online. + - sysfs: cleanup sys_devices_system_cpu_online_getsize + - cgroup v2: return cpuset cpu count when no quota is set + - re-initialize library after reload + - replace opathdir with opendir_flags + - github: Restrict permissions + - github: Validate target branch + - fix reinitialization with fuse3 + - set oom_score_adj of lxcfs process to -1000 + - init: respect --prefix when installing systemd unit files + - Fix build on ia64 + - doc: guide for mount /sys/devices/system/cpu in docker demo + - utils: add safe_uint32() helper + - macro.h: add strnprintf macro + - utils: add get_task_personality helper + - cpuview: paththrough personality when reading cpuinfo + - cpuview: fix possible use-after-free in find_proc_stat_node + - github: make coverity workflow work with meson + - README: how to build with sanitizers + - cpuset_parse: check input string in cpuset_nexttok + - github: enable ASAN and UBSAN during PR tests + - lxcfs: explicitly enable direct_IO for libfuse3 + - lxcfs: fix copypaste typo in error message + - /proc/stat: render physical cpu number in non-view mode + - sysfs: don't mask cpus in /sys/devices/system/cpu + - lxcfs: handle NULL path in lxcfs_releasedir/lxcfs_release + - cpuview: fix ABBA deadlock in find_proc_stat_node + - build: tools: keep trailing newline in jinja2 renderer + - Revert "init: respect --prefix when installing systemd unit files" + - proc: fix /proc/diskstats output format + - github: start using ubuntu-22.04 image + - github: remove ubuntu-18.04 + - tests: adapt for cgroup2 + - cpuview: resolve cpu cgroup path separately from cpuset the cgroup path is different in kubernetes with containerd runtime. + - lxcfs: preparation for FUSE_INTERRUPT support + - lxcfs: add fuse interruptible locks + - cpuview: start to use interruptible lock primitives + - github: Update for main branch + - proc_loadavg: fix ABBA deadlock between read/refresh + - proc: Fix /proc/cpuinfo not respecting personality + - proc_loadavg.c: Fix incompatible integer to pointer conversion + - cgroups: cleanup and remove unused cgroup2_devices code + - loadavg: make cleanup of start_loadavg + - cpuview: pass a correct argument to lxcfs_debug + - lxcfs: Add startup message + - proc: fix MemAvailable in /proc/meminfo to exclude tmpfs files + - systemd: mkdir -p the target mount dir + - typofix: fix incorrect printing in lxcfs help interface + - Add macro pivot&bpf for loongarch64 + - lxc.mount.hook: Skip cpu sysfs logic if missing target + - sysfs: forbid write() + - lxcfs: introduce new option --enable-cgroup + - tests: use --enable-cgroup for tests + - github: workaround CI issue with ASAN + - Revert "github: workaround CI issue with ASAN" + - proc_fuse: Fix get_swap_info typo swtotal == 0 -> *swtotal == 0 + - proc: Fix swap handling for cgroups v2 (can_use_swap) + - proc: Fix swap handling for cgroups v2 (zero limits) + - cgroup_utils: explicitly check for cgroup2 FDs in cgroup_walkup_to_root + [/details] + + ### サポートとアップグレード + + LXCFS 6.0 は 2029 年 6 月までサポートされる、最新の LTS リリースです。LXCFS 5.0 は、より遅いメンテナンスペースに変更され、重要なバグ修正とセキュリティ更新のみが提供されます。 + + + LXCFS のユーザーはすべて、6.0 ブランチへのアップグレードを計画することを強くおすすめします。 + + ### 今後のリリースについて + + ユーザーが新しい LXCFS の機能をより簡単に利用できるように、今後は LTS ではないリリースの作成を開始することにしました。計画している間隔は 6 ヶ月ごとで、LXCFS 6.1 は 10 月に予定されています。 + + + この LTS ではないリリースでは、安定性、サポート、セキュリティメンテナンスに関する LTS の保証は受けられず、次のリリースが出るまでのみサポートされます。 + + + 本番環境のユーザーは LTS リリースを利用し続けたいと思うでしょう。 + + ### ダウンロード + + - リリース tarball : [lxcfs-6.0.0.tar.gz](https://linuxcontainers.org/downloads/lxcfs/lxcfs-6.0.0.tar.gz) + - GPG シグネチャー : [lxcfs-6.0.0.tar.gz.asc](https://linuxcontainers.org/downloads/lxcfs/lxcfs-6.0.0.tar.gz.asc) + + ### コントリビューター + + LXCFS 6.0 は、合計 25 名のコントリビューターによってリリースしました。