[Runtime CI] macOS DMG に名前が空白の "/Applications" ショートカット symlink が同梱され、下流ツールの展開検証が失敗する
Author: Walkmana-25Created Sep 6, 2026Updated Sep 12, 2026
概要
mac-universal-artifacts.zip(内部の floorp-macOS-universal-moz-artifact.dmg)に、名前が半角空白1文字のシンボリックリンクが DMG ルート直下に同梱されています。リンク先は /Applications で、macOS インストーラ DMG で定番の「アプリを Applications にドラッグ」用ショートカットと思われますが、リンク名が正しく付与されず " "(空白)になっています。
このため、DMG を cp -a などで展開してそのまま利用する下流のツール(feles-build の dev 環境構築)が、展開ツリー内の symlink を検出する安全監査で失敗し、開発環境のセットアップが完了しなくなっています。
証拠
DMG をマウントして確認した実際の状態:
$ ls -la <マウントポイント>
lrwxr-xr-x 1 user staff 13 9月 x日 「 」 -> /Applications ← 名前が空白1個の symlink
drwxr-xr-x 0 user staff 4 9月 x日 Floorp DaylightDebug.app- リンク名:
" "(半角スペース1文字) - リンク先:
/Applications Floorp DaylightDebug.app本体の内部はクリーン(symlink は本件1件のみ)
推定される原因
DMG 作成処理(CI のパッケージングスクリプト)で Applications ショートカットを作る際、リンク名を指定する変数またはクォートが崩れ、ln -s /Applications " " のように空の名前(または空白1個の名前)でリンクが作成されていると推定されます。本来は以下のようになるはずです:
ln -s /Applications "<マウントポイント>/Applications"影響
- feles-build dev が初回セットアップで失敗する: 展開後の staging ツリーに対する安全監査(
assertSafeFilesystemTree、symlink / ハードリンク / 特殊ファイルを検出した時点で昇格を拒否する仕様)が本 symlink を検出し、Runtime staging tree contains a symlink: floorp/ .というエラーで中断する - エラーメッセージ中の
floorp/ .は行の折り返しではなく、relative = "floorp/ "(空白のエントリ名)+ 末尾のピリオド。一見意味不明なメッセージになり、原因特定を難しくしている - この DMG を直接配布してインストールに使う場合も、余計な symlink がユーザーの
/Applicationsを(ランタイム実行には無害とはいえ)指し続けることになる
再現手順
https://dev-assets.floorp.app/floorp-runtime-builds/mac-universal-artifacts.zipを取得(2026-09-05 時点、SHA-256:49ad110436ecc23c7fc09a1de7a79ca40ffaf0522bc09628312a5d6137d0f048)- 内部の
floorp-macOS-universal-moz-artifact.dmgを展開 hdiutil attachでマウントし、ルート直下をls -laで確認 → 空白名 symlink-> /Applicationsが存在する
(旧来の単体配信されていた floorp-macOS-universal-moz-artifact.dmg にも同梱を確認済み。少なくとも 2026-09-05 / 09-06 の両ビルドで再現。)
期待される動作
- DMG ルートのショートカット symlink は正しい名前(
Applications)で作成される - または、CI アーティファクト(ランタイム配布用 DMG)にはドラッグ用ショートカットを含めない
環境
- アーティファクト:
mac-universal-artifacts.zip/floorp-macOS-universal-moz-artifact.dmg(macOS universal、Floorp DaylightDebug 155.0 / build 20260905195011) - 発見日: 2026-09-06
Source: Floorp-Projects/Floorp