From 9e1420440e5b1943a8d77064f4b976044b27bc6b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Max=20=F0=9F=91=A8=F0=9F=8F=BD=E2=80=8D=F0=9F=92=BB=20Copl?= =?UTF-8?q?an?= Date: Thu, 12 Mar 2026 21:33:49 -0700 Subject: [PATCH 1/2] fix: fix bug when installing on GNU+Linux --- eden/scm/Makefile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/eden/scm/Makefile b/eden/scm/Makefile index 30e308ec58283..ce305273de5b6 100644 --- a/eden/scm/Makefile +++ b/eden/scm/Makefile @@ -93,6 +93,9 @@ oss: HG_BIN_NAME=$(SL_BIN_NAME) oss: local install-oss: oss + $(SL_NAME) --kill-chg-daemon + killall $(SL_NAME) || true + sleep 1 mkdir -p $(DESTDIR)/$(PREFIX)/bin cp $(SL_NAME) $(DESTDIR)/$(PREFIX)/bin mkdir -p $(DESTDIR)/$(PREFIX)/lib From a17d268ae96e58f86989cab01f70268fb4d52000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Max=20=F0=9F=91=A8=F0=9F=8F=BD=E2=80=8D=F0=9F=92=BB=20Copl?= =?UTF-8?q?an?= Date: Thu, 12 Mar 2026 22:58:07 -0700 Subject: [PATCH 2/2] fix: repair OSS build MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Commit f54b293 moved build_eden_command into the edenfs-client crate and added it as a dependency of clone. edenfs-client pulls in thrift, which requires the thrift1 compiler — unavailable in OSS builds. Fix by restoring the function locally in clone and dropping the edenfs-client dependency. Co-Authored-By: Claude Opus 4.6 (1M context) --- eden/scm/lib/clone/Cargo.toml | 1 - eden/scm/lib/clone/src/lib.rs | 23 ++++++++++++++++++++++- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/eden/scm/lib/clone/Cargo.toml b/eden/scm/lib/clone/Cargo.toml index 344abff59e357..7edd58e5f40e0 100644 --- a/eden/scm/lib/clone/Cargo.toml +++ b/eden/scm/lib/clone/Cargo.toml @@ -21,7 +21,6 @@ sapling-configmodel = { version = "0.1.0", path = "../config/model", features = sapling-context = { version = "0.1.0", path = "../context" } sapling-edenapi = { version = "0.1.0", path = "../edenapi" } sapling-edenapi_types = { version = "0.1.0", path = "../edenapi/types" } -sapling-edenfs-client = { version = "0.1.0", path = "../edenfs-client" } sapling-progress-model = { version = "0.1.0", path = "../progress/model" } sapling-repo = { version = "0.1.0", path = "../repo" } sapling-types = { version = "0.1.0", path = "../types" } diff --git a/eden/scm/lib/clone/src/lib.rs b/eden/scm/lib/clone/src/lib.rs index 733b25609fd86..f608634536e63 100644 --- a/eden/scm/lib/clone/src/lib.rs +++ b/eden/scm/lib/clone/src/lib.rs @@ -113,6 +113,27 @@ pub enum EdenCloneError { MissingCommandConfig(), } +fn get_eden_clone_command(config: &dyn Config) -> Result { + let eden_command = config.get_opt::("edenfs", "command")?; + let mut cmd = match eden_command { + Some(cmd) => Command::new(cmd), + None => return Err(EdenCloneError::MissingCommandConfig().into()), + }; + + // allow tests to specify different configuration directories from prod defaults + if let Some(base_dir) = config.get_opt::("edenfs", "basepath")? { + cmd.args([ + "--config-dir".into(), + base_dir.join("eden"), + "--etc-eden-dir".into(), + base_dir.join("etc_eden"), + "--home-dir".into(), + base_dir.join("home"), + ]); + } + Ok(cmd) +} + #[tracing::instrument] fn run_eden_clone_command(clone_command: &mut Command) -> Result<()> { let output = clone_command.output().with_context(|| { @@ -155,7 +176,7 @@ pub fn eden_clone( ) -> Result<()> { let config = repo.config(); - let mut clone_command = edenfs_client::build_eden_command(config)?; + let mut clone_command = get_eden_clone_command(config)?; clone_command.args([ OsStr::new("clone"),