世界を動かす技術を、日本語で。

Debianはなぜソフトウェアを変更するのか?

2025年5月22日原文(blog.liw.fi)

概要

  • Debianがソフトウェアを変更する主な理由を簡潔に解説
  • Debian Policy Manualに基づく要件やシステム統合の必要性を強調
  • プライバシーやセキュリティ、法的要件への対応を明示
  • バグ修正や非フリー要素の削除などの具体例を提示
  • Debian独自の方針や目的を分かりやすくまとめること

Debianがソフトウェアを変更する理由

  • Debianに含まれるソフトウェアは、 Debian Policy Manual で定められたポリシーに従う必要があるため、パッケージごとに調整や変更を行うことが一般的であることを確認
  • 例として、 システム全体の設定ファイルは /etc、ドキュメントは /usr/share/doc に配置するなどのルールが存在することを意識
  • 実行ファイル名が異なるパッケージ間で重複する場合、 競合回避のための調整 を行うこと
  • Debianに含まれるプログラム同士が 相互運用性を確保 するために、ソケットのパスや実行ユーザーの統一などを必要に応じて変更すること
  • 「コールホーム」や Debianパッケージシステムをバイパスして更新を行うコード は、プライバシーやセキュリティ上の理由から削除すること
  • パッケージングシステムを通さないアップデートは、 機能面・セキュリティ面で問題を引き起こす ため、Debianでは許可しない方針を徹底
  • アップストリーム(開発元)でまだ修正されていないバグや、 セキュリティ問題の修正を独自に適用・バックポート することがあること
  • Debianのユーザー体験向上のため、 バグ修正や安定性強化を優先 して行うこと
  • 法的に配布できない部分(例: Debian Free Software Guidelines に準拠しないソースコードやドキュメント)は、パッケージから削除または「non-free」セクションに分離すること
    • 例:改変不可部分を含むGNU Free Documentation Licenseのマニュアルや、変更不可なロゴなど
  • アップストリームが マニュアルページを提供しない場合、Debianが独自に追加 すること
  • これらの変更は、 Debianユーザーの利便性・安全性・法的安定性を重視 した結果であることを強調
  • Jonathan McDowellの協力に感謝しつつ、 最終的な意見や誤りは執筆者自身の責任 であることを明記

Hackerたちの意見

Debianは、配布するソフトウェアのパッチ適用にどんなリスクがあると考えていて、それをどうやって軽減しているの?

Debianは一人じゃないよ。多くのパッチはCVEのバックポート修正だし。「このプロジェクトは古いバージョンのgccでしかコンパイルできない」みたいなこともあるから、選択肢はそれを捨てるか修正するかだよね。特定のアーキテクチャでしか現れないバグもあって、開発者がamd64しか使わないから、他の環境でコンパイルや実行をしないんだよね。だから間違った仮定をしちゃう。あとは、Pythonが毎回のリリースで標準ライブラリモジュールを削除して、いろいろ壊しちゃうから、Pythonの外で別にパッケージ化されることもある。まだリリースされていないプロジェクトからのバグ修正を選んで持ってくることもあるし。Debianの開発者が他の誰よりも間違いを犯しやすいと思う理由はあるの?Debianはほとんどのプロジェクトが持っていないような厳密なテスト環境を持っているのに。

それはパッチが何かによるよね?もし欠けているマニュアルページを追加するだけなら、何が悪くなるか分からないよね?ビルドオプションを変更する(例えば、機能を有効化または無効化する)ことはパッチなのか、それとも期待される変更なのか(もしその設定オプションが悪いなら、上流にどのくらい責任を問うべきなのか)?デフォルトの設定ファイルはどう?それによってソフトウェアがより安全になったり、逆に安全でなくなったりすることもあるし、TLSやSSHで使う暗号がどうなるかとか。

Debianは「コールホーム」したり、Debianのパッケージシステムをバイパスしてソフトウェアを更新しようとするコードを削除するよ。神様に感謝。こんなディストロが存在して本当に嬉しい。

でも、こういうことをするソフトウェアをすべて捕まえられる保証はないよね :D

このポリシーはnixpkgsには欠けてるけど、技術的な理由からビルドプロセスには似たようなポリシーがあるんだ。だから、nixpkgsを通じてNixOSにspotifyやsignal-desktopを追加できるけど、彼らは自分たちで更新することには成功しないんだよね。でも、試みるかもしれなくて、それがDebianのガイドラインに違反することになる。難しいところだな — 俺はサービスアーキテクチャに依存する現代の商業ソフトウェアが好きなんだけど、10年から15年後にはその会社が倒産したりサービスの利用条件が変わったりして、なんか壊れた状態になるのが確実なんだ。だから、パッケージシステムの長期的な健康を気にする、あまり興奮しない人たちが守っている原則には感謝してるよ。

残念ながら、これはまだDebianポリシーの一部ではなく、Debianには異なる深刻度のプライバシー問題がまだたくさんあるんだ。 https://wiki.debian.org/PrivacyIssues

opensnitchがDebian trixieでも利用可能になったのは嬉しいよ、Debianがまだ見つけていない問題を軽減するためにね。

最近、visidata(1)が電話をかけることを知ってめっちゃがっかりした。多くの人がその機能の削除を求めているのに、Debianパッケージでは無効になってないんだよね。: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1001647 https://github.com/saulpw/visidata/discussions/940

2年前にUbuntuからDebianに切り替えた理由の一つだね。もう一つの理由はsnapだった。

彼らは自分たちのGoフォークを持ってるの?テレメトリコードが入ってる他のたくさんの例の一つだね。

ほとんどの良いディストロはこれをやってるよ。例えば、SUSEは最近「電話をかける」からパッケージを禁止したんだ。例えば、サイドリーディングをしたとかね。 https://security.opensuse.org/2025/05/07/deepin-desktop-remo... Debianも確かにこれをやってる。リリース版ではFFがテレメトリを無効にしてる: https://wiki.debian.org/Firefox

Hacker Newsで議論の続きを見る