はじめに
昨日の depends_on :osxfuse に関しては、depends_on :osxfuse for macFUSE · Issue #9401 · Homebrew/brew · GitHubという形で Feature suggestion を送りました。深夜のうちに対応があり、osxfuse に関しては以下のような形になると連絡がありました。
- depends_on :osxfuse は homebrew-core から外す
- depends_on :cask に関しても、外すべく PR を送り協議している → Deprecate cask requirements. by MikeMcQuaid · Pull Request #9403 · Homebrew/brew · GitHub
また、前々回の記事 の野良 Cask で対応していた macFUSE 4.0.4 については、Update osxfuse from 3.11.2 to 4.0.4 by weichenw · Pull Request #94187 · Homebrew/homebrew-cask · GitHubというプルリクエストが進んでいました。 しかし、このプルリクエストは 9403 のプルリクエストが来るまで待つようにということになっています。 Homebrew-core との競合がなくなれば、macFUSE 4.0.4 は cask が上がるようになるでしょう。
そんなわけで、macFUSE に依存する sshfs は今後 homebrew-core からは提供されなくなると思います。 これらについては、ユーザが個別に tap を作り対応するようにとのことでした。 とはいえ、それを学生にやらせるのは酷なので、うちの学校で使いそうなアプリの tap を作ろうと考えました。 名前は hkob/tmcit-brew くらいでいいでしょうか。リポジトリ名は hkob/homebrew-tmcit-brew となりますね。
せっかく前回 m1-beta-brew を作ったので、自分のテストはこっちで実施し、うまく動いたものを tmcit-brew に展開する形がよいかと考えています。
sshfs の depends_on の修正
depends_on :osxfuse が使えなくなったので、自分の tap で Requirement を設定する必要があります。昨日の Formula を修正してみます。macFUSE のプルリクエストがまだ止まっていますが、すでに 4.0.4 がインストールしてあれば、この Requirement は通過するはずです。
class MacFuseRequirement < Requirement fatal true satisfy(:build_env => false) { File.exist?("/usr/local/include/fuse/fuse.h") && !File.symlink?("/usr/local/include/fuse") } def message; <<~EOS macFUSE is required; install it via: brew install --cask macfuse EOS end end class M1BetaSshfs < Formula desc "File system client based on SSH File Transfer Protocol" homepage "https://osxfuse.github.io/" url "https://github.com/libfuse/sshfs/releases/download/sshfs-2.10/sshfs-2.10.tar.gz" sha256 "70845dde2d70606aa207db5edfe878e266f9c193f1956dd10ba1b7e9a3c8d101" license "GPL-2.0-or-later" depends_on "autoconf" => :build depends_on "automake" => :build depends_on "libtool" => :build depends_on "pkg-config" => :build depends_on "glib" depends_on MacFuseRequirement env do ENV.append_path "PKG_CONFIG_PATH", HOMEBREW_LIBRARY/"Homebrew/os/mac/pkgconfig/fuse" unless HOMEBREW_PREFIX.to_s == "/usr/local" ENV.append_path "HOMEBREW_LIBRARY_PATHS", "/usr/local/lib" ENV.append_path "HOMEBREW_INCLUDE_PATHS", "/usr/local/include/fuse" end end patch do url "https://github.com/libfuse/sshfs/commit/667cf34622e2e873db776791df275c7a582d6295.patch?full_index=1" sha256 "ab2aa697d66457bf8a3f469e89572165b58edb0771aa1e9c2070f54071fad5f6" end patch :p0, :DATA def install system "./configure", "--disable-dependency-tracking", "--prefix=#{prefix}" system "make", "install" end test do system "#{bin}/sshfs", "--version" end end __END__ --- sshfs.c.orig 2020-12-03 10:32:25.000000000 +0900 +++ sshfs.c 2020-12-03 10:32:42.000000000 +0900 @@ -14,9 +14,6 @@ #if !defined(__CYGWIN__) #include <fuse_lowlevel.h> #endif -#ifdef __APPLE__ -# include <fuse_darwin.h> -#endif #include <assert.h> #include <stdio.h> #include <stdlib.h>
一応、uninstall して install することが確認できました。これを後で、tmcit-brew の方にも展開しようと思います。本家の sshfs が消えるまで使えないので、tb-sshfs のように接頭子付けておいたほうがいいでしょうか。少し様子を見ましょう。
次の記事: 箱出しから初期設定まで - M1 MacBook Air インストール覚書(11) - hkob’s blog
前の記事: 野良 homebrew Formula の作成 - M1 MacBook Air インストール覚書(9) - hkob’s blog