From c13c20fb5e8e73cc684a12840118788a087e212f Mon Sep 17 00:00:00 2001 From: ncaq Date: Fri, 5 Jun 2026 17:57:13 +0900 Subject: [PATCH 1/2] =?UTF-8?q?fix(nix-on-droid):=20proot-termux=E4=BF=AE?= =?UTF-8?q?=E6=AD=A3=E7=89=88=E3=82=92=E5=8F=82=E7=85=A7=E3=81=97=E3=81=A6?= =?UTF-8?q?=E3=82=A4=E3=83=B3=E3=82=B9=E3=83=88=E3=83=BC=E3=83=AB=E3=81=AE?= =?UTF-8?q?=E6=A8=A9=E9=99=90=E3=82=A8=E3=83=A9=E3=83=BC=E3=82=92=E8=A7=A3?= =?UTF-8?q?=E6=B6=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `26.05`へ移行して`glibc`が`2.42`になって以降、 Nix-on-Droidでのインストールが以下の権限エラーで失敗するようになっていました。 ``` error: getting pseudoterminal attributes: Permission denied ``` 原因は`glibc 2.42`が`isatty`や`tcgetattr`で`TCGETS2` ioctlを使うようになったのに対し、 Nix-on-Droidが同梱する古いproot-termuxが`TCGETS2`を処理できないことです。 ビルダー起動時の`tcgetattr`が`EPERM`を返してインストールが中断していました。 当初は`nixpkgs`と`home-manager`をNix-on-Droid専用に`glibc 2.40`の`25.11`へ固定する案を検討しました。 しかし共有のhome設定が`programs.claude-code`や`programs.ssh.settings`など、 `26.05`専用のhome-managerオプションを多用しており、 `25.11`では評価が壊れて二重保守のコストが大きいため断念しました。 代わりに根本原因のproot-termuxを直接修正します。 proot-termuxを`TCGETS2`対応版へ更新するPRが、 https://github.com/nix-community/nix-on-droid/pull/529 で提出されていますがまだ未マージなので、 暫定でそのブランチ(masterベース)を直接参照します。 これで全体を`26.05`のまま維持でき、 home設定の互換対応も不要になります。 なお参照先がPRのベースである`master`系になるため、 `release-24.05`固有ではないmaster側の挙動差が出る可能性があります。 評価が通ることはローカルで確認済みですが、 実機での最終確認はこれからです。 上流にマージされたら公式の正式リリースへ戻します。 close #1205 --- flake.lock | 35 +++++++++++------------------------ flake.nix | 8 +++++++- 2 files changed, 18 insertions(+), 25 deletions(-) diff --git a/flake.lock b/flake.lock index f4e8f48e..cf4222a6 100644 --- a/flake.lock +++ b/flake.lock @@ -308,7 +308,10 @@ "nix-on-droid", "nixpkgs" ], - "nmd": "nmd", + "nmd": [ + "nix-on-droid", + "nmd" + ], "nmt": "nmt" }, "locked": { @@ -336,19 +339,19 @@ ], "nixpkgs-docs": "nixpkgs-docs", "nixpkgs-for-bootstrap": "nixpkgs-for-bootstrap", - "nmd": "nmd_2" + "nmd": "nmd" }, "locked": { - "lastModified": 1720396533, - "narHash": "sha256-UFzk/hZWO1VkciIO5UPaSpJN8s765wsngUSvtJM6d5Q=", - "owner": "nix-community", + "lastModified": 1777950930, + "narHash": "sha256-SmroB7lG9ZKj2NlXhBErQMucbDAUPPvAHYkYpvzukPI=", + "owner": "newAM", "repo": "nix-on-droid", - "rev": "f3d3b8294039f2f9a8fb7ea82c320f29c6b0fe25", + "rev": "d0e14fad3ff69de6039ce3a3ecd9198b20d0d4c9", "type": "github" }, "original": { - "owner": "nix-community", - "ref": "release-24.05", + "owner": "newAM", + "ref": "update-proot", "repo": "nix-on-droid", "type": "github" } @@ -475,22 +478,6 @@ } }, "nmd": { - "flake": false, - "locked": { - "lastModified": 1666190571, - "narHash": "sha256-Z1hc7M9X6L+H83o9vOprijpzhTfOBjd0KmUTnpHAVjA=", - "owner": "rycee", - "repo": "nmd", - "rev": "b75d312b4f33bd3294cd8ae5c2ca8c6da2afc169", - "type": "gitlab" - }, - "original": { - "owner": "rycee", - "repo": "nmd", - "type": "gitlab" - } - }, - "nmd_2": { "inputs": { "nixpkgs": [ "nix-on-droid", diff --git a/flake.nix b/flake.nix index 3106a296..d3ea7fbd 100644 --- a/flake.nix +++ b/flake.nix @@ -24,7 +24,13 @@ }; nix-on-droid = { - url = "github:nix-community/nix-on-droid/release-24.05"; + # 本来は公式の`github:nix-community/nix-on-droid`の最新版リリースを使いたい。 + # しかしNix-on-Droidが同梱するproot-termuxは`glibc 2.42`の`TCGETS2` ioctlに未対応で、 + # `26.05`の`glibc 2.42`ではインストールが`Permission denied`の権限エラーになる。 + # proot-termuxを修正する[PR](https://github.com/nix-community/nix-on-droid/pull/529)が、 + # まだ未マージなので暫定でそのブランチ(masterベース)を直接参照する。 + # 問題がなくなったら正式リリースに戻す。 + url = "github:newAM/nix-on-droid/update-proot"; inputs = { nixpkgs.follows = "nixpkgs"; home-manager.follows = "home-manager"; From a84ad25e6151fdedb92c78665b31aa91e2b0073a Mon Sep 17 00:00:00 2001 From: ncaq Date: Sat, 27 Jun 2026 17:35:48 +0900 Subject: [PATCH 2/2] build(deps): `nix flake update nix-on-droid` --- flake.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/flake.lock b/flake.lock index cf4222a6..05bef377 100644 --- a/flake.lock +++ b/flake.lock @@ -342,11 +342,11 @@ "nmd": "nmd" }, "locked": { - "lastModified": 1777950930, - "narHash": "sha256-SmroB7lG9ZKj2NlXhBErQMucbDAUPPvAHYkYpvzukPI=", + "lastModified": 1782163734, + "narHash": "sha256-zHC7IBDDlxgnfkYv4Y+Sk2DEVpb1FS5yU08Q3il7vRc=", "owner": "newAM", "repo": "nix-on-droid", - "rev": "d0e14fad3ff69de6039ce3a3ecd9198b20d0d4c9", + "rev": "dff2d1eb9b40d88c523a62252d899219105c5517", "type": "github" }, "original": {