Optional container images for building and running LTFS
まだ誰も着手していません。
評価
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 初心者へのやさしさ
- 35/100
- issue の種類
- 機能追加
- 明瞭さ
- 明確に書かれている
- 活発さ
- 活発
- 領域
- build-system, ci-cd, devops
調査の方向性
まず feature/docker ブランチ、その docker/ ディレクトリ、workflow、.dockerignore、トップレベルの README を確認し、次に言及されている ltfs_ordered_copy と configure.ac の修正を調べます。作業完了と見なす前に、合意済みのイメージ範囲、CI の予算、セルフテスト、リビジョンマーカー、ドキュメントを確認してください。
索引モデルが issue の本文から書いたものです。
説明
Is your feature request related to a problem? Please describe.
Hi — thanks for LTFS. I deploy it on hosts with tape drives attached, and what I
wanted was to build it once and then simply run it: hand the same image to another
machine, or to someone else, and have it work without them setting up a toolchain at
all. That is really what a container buys here — not building for many distributions,
but not having to build a second time.
Describe the solution you'd like
I have built a containerized Autotools environment and would like to ask whether you
would be interested in it upstream. It adds a docker/ directory, one workflow, a
.dockerignore, and a short section in the top-level README — no deletions, and no
existing workflow, build file or source behaviour changes. linux/amd64 only.
Each distribution produces two images by role:
| Role | Contents | Use |
|---|---|---|
dev |
Full Autotools toolchain plus gdb, strace, ccache; compiles a mounted source tree | Building and debugging |
runtime |
No toolchain; sg, file, itdtimg backends |
Deployment |
- In-support (both roles): Ubuntu 26.04 / 24.04 / 22.04, Debian 13 / 12,
Rocky Linux 10 / 9 / 8. - EOL (
runtimeonly): Debian 11 / 10 / 9, Ubuntu 20.04 / 18.04 / 16.04,
CentOS 7, Fedora 28.
24 images in total. LTFS builds and works on all of them, EOL included. The EOL
ones build from frozen distribution archives, and each enforces a glibc ceiling at
build time (2.17 for CentOS 7 up to 2.31 for Debian 11) so the binaries really do run
on those old hosts.
Those EOL images are neither published nor built in CI: their base OS gets no
security updates, and their frozen archives do occasionally move or disappear — which
is something the person building one needs to see, not something a weekly red run
would help with. Their definitions are still linted, so a broken one cannot reach
them.
Since nothing automated watches them, they are verified by hand and the commit is
recorded. All eight built and passed their own self-test at
3a8ac9bfe5bec69112f214b1b10fcc1815cd12f2, and each image carries that revision in
/usr/local/share/ltfs-autotools/build-revision, so any image can say for itself
which source it came from.
Every image validates itself as it builds. Building dev compiles the source in a
throwaway stage, and only a pass marker naming the revision is carried forward — the
source tree never lands in the image. Building runtime runs a smoke test and formats
a virtual tape through the file backend, and the build fails if either does.
I also tested this on real hardware, since a green file-backend build says little
about the sg path. On an IBM ULTRIUM-HH8 (LTO-8) I ran the runtime image end to end:
enumerate the drive over sg, mkltfs a real cartridge, mount via FUSE, write 1 MiB,
unmount cleanly, remount in a fresh container, and read it back byte-identical.
ltfsck reports the volume consistent.
Describe alternatives you've considered
Keeping it in my own fork, which works fine — I am offering it because the
per-distribution build problem seems common. I am also happy with a smaller scope
(fewer distributions, or runtime only) if you prefer.
Additional context
- Two small fixes are needed for the images to build and I would include them:
ltfs_ordered_copyuses an f-string (breaks on the Python 3.5 in older bases), and
configure.acfindsdlopenonly because net-snmp pulls in-ldl. Happy to send
them separately. - Nothing needs to be published — the workflow validates without pushing anywhere.
- It does cost Actions minutes, and I would rather you set the budget than have me
guess: as written it fans out one job per in-support distribution on every push and
pull request, plus a weekly run to catch base images drifting. EOL images are not
built at all. Narrowing this further — pull requests only, or weekly only — is a
two-line change, so please say what suits you. - Distribution differences live as data in one Bake file, so adding a release is a few
lines, not a new Dockerfile. - Found while testing this but not caused by it, and I will report it separately:
ltfs -asegfaults whenLANGnames a locale the system has not generated —
libfuse's iconv module callsstrdup(setlocale(LC_CTYPE, ""))unguarded while
printing module help, andltfs -areaches it throughfuse_main()in
src/main.c. Nothing about it is container-specific — generating the locale makes
it go away and removing it brings it back.ltfs -his unaffected.
The work is on a feature/docker branch and I can open a PR against release/v2.4.9.0
whenever suits you. Thanks for taking a look.
- 主要言語
- C
- スター
- 352
- フォーク
- 110
- 平均マージ
- 2時間 50分
- マージ済み PR(30日)
- 2
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
LinearTapeFileSystem/ltfs のほかの issue
-
難易度 5/5 1週間以上 初心者へのやさしさ 35/100
LinearTapeFileSystem/ltfs#647 · コメント 1 件 ·
-
難易度 4/5 3〜5日 初心者へのやさしさ 45/100
LinearTapeFileSystem/ltfs#645 · コメント 3 件 ·
-
H/W issue HBA Report Investigating
LinearTapeFileSystem/ltfs#640 · コメント 7 件 · 担当者 1 名 ·
-
難易度 4/5 3〜5日 初心者へのやさしさ 45/100
LinearTapeFileSystem/ltfs#638 · コメント 2 件 ·
-
Investigating
難易度 3/5 1〜2日 初心者へのやさしさ 58/100
LinearTapeFileSystem/ltfs#629 · リアクション 2 件 ·
LinearTapeFileSystem/ltfs の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
-
難易度 1/5 1時間未満 初心者へのやさしさ 90/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
NVIDIA/k8s-device-plugin#2061 · コメント 1 件 ·
-
task
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
vsanthanam/JBird#429 ·