proot -- Termux の開発コミュニティによる proot の Debian noroot 環境向け修正版
概要
この安定版配布ページに置かれている proot のソースコードは、 termux の開発コミュニティによる proot のソースコードを、 Debian noroot 環境上で動作させるように修正したものです。
また、この proot のソースコードは、 "termux の開発コミュニティによる proot をビルドする為の Ruby スクリプト" によって proot のビルドの為に使用されます。
従って、この安定版の proot のソースコードをビルドするには、termux の開発コミュニティによる proot をビルドするための Ruby スクリプトに同梱されている build-proot.rb を使用して、ビルドを行って下さい。
Termux の開発コミュニティによる proot のソースコードからの修正点
この安定版配布ページに置かれている proot のソースコードは、オリジナルとなる termux の開発コミュニティによる proot のソースコードから、以下の不具合等が修正されています。
- ベースとなる termux の開発コミュニティによる proot のソースコードを最新の commit ID である 38042a5 に追随。
- Android NDK の toolchain の他、 PC 上のクロスコンパイル環境においてもビルドが可能となるように修正。
- VFAT 領域等、シンボリックリンクに対応していないファイルシステムの領域において、システムコール link(2) を実行した時に、リンク元のファイルが別名に変更されたままとなる問題を修正。
- proot コマンドにおいて、オプション
--link2symlinkが指定され、かつ、環境変数PROOT_L2S_DIRが設定されない場合に、自動的にオプション-Hが指定されて proot コマンドが起動されるように修正。- また、オプション
-Hが設定された場合に、 proot によって不可視化されるファイル及びシンボリックリンクのプレフィックスを ".l2s." とするように修正。 - link(2) を symlink(2) によってエミュレートする機能を使用時に proot の内部で作成される ".l2s." をプレフィックスとするファイル及びシンボリックリンクが外部から直接読み書きが出来るためにこれらのファイルを削除すると、ハードリンクが機能しなくなるために行われる修正です。
- また、オプション
- ソースコード
src/syscall/socket.cにおいて、 obsolete である glibc の標準ライブラリ関数mktemp(3)に代えて独自の実装によるmktemp(3)関数であるproot_mktemp関数を使用するように修正。 - proot ソースコード
src/cli/proot.c, src/syscall/rlimit.c, src/tracee/mem.c等において、コンパイル時に警告を出力する問題を修正。 - proot の一時ファイルを置くためのディレクトリのパス名の設定について、環境変数
PROOT_TMP_DIRの他に、環境変数PROOT_TMPDIRを参照するように修正。 proot -Vにより、 proot のバージョン番号を出力させた場合に、正確なバージョン番号が出力されるように修正を行った。
配布条件
この安定版配布ページに置かれている proot のソースコードは、 termux の開発コミュニティによる proot のソースコードを、 Z.OOL. (mailto:zool@zool.jpn.org) によって、 Debian noroot 環境及び PC 上のクロスコンパイル環境においてビルド及び動作するよう修正したものです。
従って、この proot のソースコードは、この安定版配布ページに同梱されている COPYING の冒頭に記述されている STMicroelectronics 社の proot の開発者の各氏と termux の開発コミュニティの各氏及び Z.OOL. (mailto:zool@zool.jpn.org) が著作権を有し、オリジナルとなる proot のソースコードと同様に、 GNU public license version 2 に従って配布されるものとします。