この git リポジトリに置かれている proot のソースコードは、 termux の開発コミュニティによる proot のソースコードを、 Debian noroot 環境上で動作させるように修正したものです。
なお、この git リポジトリに置かれている proot のソースコードをビルドするには、termux の開発コミュニティによる proot をビルドするための Ruby スクリプトに同梱されている build-proot.rb
を使用して、ビルドを行って下さい。
この git リポジトリに置かれている proot のソースコードは、オリジナルとなる termux の開発コミュニティによる proot のソースコードから、以下の不具合等が修正されています。
- 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
関数を使用するように修正。 - ソースコード
src/cli/proot.c, src/syscall/rlimit.c, src/tracee/mem.c
等において、コンパイル時に警告を出力する問題を修正。 - proot の一時ファイルを置くためのディレクトリのパス名の設定について、環境変数
PROOT_TMP_DIR
の他に、環境変数PROOT_TMPDIR
を参照するように修正。
この git リポジトリに置かれている proot のソースコードは、 termux の開発コミュニティによる proot のソースコードを、 Z.OOL. (mailto:zool@zool.jpn.org) によって、 Debian noroot 環境及び PC 上のクロスコンパイル環境においてビルド及び動作するよう修正したものです。
従って、この proot のソースコードは、この git リポジトリに同梱されている COPYING の冒頭に記述されている STMicroelectronics 社の proot の開発者の各氏と termux の開発コミュニティの各氏及び Z.OOL. (mailto:zool@zool.jpn.org) が著作権を有し、オリジナルとなる proot のソースコードと同様に、 GNU public license version 2 に従って配布されるものとします。
以下に、オリジナルの proot のソースコードの README.md の原文を示します。
This is a copy of the PRoot project with patches applied to work better under Termux.