lsd icon indicating copy to clipboard operation
lsd copied to clipboard

[Bug]: Fails to build on NetBSD

Open 0323pin opened this issue 1 year ago • 1 comments

Version

  • [X] latest

version

lsd v1.0.0 fails to build on NetBSD using Rust-1.71.1

What OS are you seeing the problem on?

Others

installation

Package maintainer building from source.

term

alacritty

ls-colors

Not relevant.

What happened?

The problem is a conflicting dependency version. lsd-1.0.0 depends on git2-0.16.1 which in turn pulls-in libgit2-sys-0.14.2+1.5.1
These are rather old versions, NetBSD defaults to libgit2-1.6.4 as the native version and linking fails due to mismatched versions.

What expected?

The package builds from source.

What else?

Solution: update crate dependencies, git2 to 0.17.2 and consequently libgit2-sys to 0.15.2+1.6.4

0323pin avatar Aug 28 '23 08:08 0323pin

Applying the following patch,

$NetBSD$

Avoid libgit2 version mismatch.

--- Cargo.toml.orig	2023-08-25 16:44:13.000000000 +0000
+++ Cargo.toml
@@ -45,7 +45,7 @@ vsort = "0.1.0"
 
 [target."cfg(not(all(windows, target_arch = \"x86\", target_env = \"gnu\")))".dependencies]
 # if ssl feature is enabled compilation will fail on arm-unknown-linux-gnueabihf and i686-pc-windows-gnu
-git2 = { version = "0.16", optional = true, default-features = false }
+git2 = { version = "0.17", optional = true, default-features = false }
 
 [target.'cfg(unix)'.dependencies]
 users = "0.11.*"

and re-generating Cargo.lock fixes the build.

I've applied this internally and merged the update into the main pkgsrc branch. Please consider this for your next release.

Btw, there's an inconsistency in Cargo.toml. The file states, git2 = { version = "0.16", optional = true, default-features = false } but further down it has the following,

[features]
default = ["git2"]
sudo = []
no-git = [] # force disabling git even if available by default

So, is git2 a default feature or, not?

0323pin avatar Aug 28 '23 09:08 0323pin

fixed on latest release.

0323pin avatar Mar 22 '24 22:03 0323pin