Change:
Project description is a GUI for jj users. It is a Tauri app. I believe that is working on some stuff to assist packaging Tauri apps in nixpkgs. I wanted to open a 'tracking' issue, maybe to coordinate efforts and keep an eye on things, rather than constantly bugging them in the JJ Discord. (jj is awesome, if you're reading this, you might find it neat to checkout!) Metadata homepage URL: source URL: license: apl2 platforms: unix, linux, darwin, ... ?? Add a :+1: [reaction] to [issues you find important]. [reaction]: [issues you find important]:
New version has just come out. But my build still fails with: Anyone got any ideas?
I ran into similar problem when trying to add build using . FWIW I believe problem is in the duplicate (i.e. is a valid directory, is not). This is caused by paths in cargo config being relative to config itself (). Temporary fix is to patch in with an absolute path, but a long-term solution would be to fix (Incomplete) solution can be found at - I'm right now stuck at building frontend part, due to problems with rollup missing its native dependencies: which I believe is tracked .
Update: I have a working build for 0.15.3 in if anyone needs inspiration. Unfortunately it took some tweaking of by hand to make it build and so it probably won't work on anything other than . Probably next step would be to stop using and instead let correctly resolve all the dependencies by itself.
any chance for an update to 0.20.0?
done: notes: custom npm package-lock is no longer needed (upstream works fine), so the build should now work even on linux / x64 darwin, there is still an issue with upstream Cargo.{toml,lock} - for some reason cargo tries to download new deps during build process. I suspect this is caused by tauri enabling certain features, which add extra dependencies during build and/or using custom . But I don't know Rust build process enough to suggest a solution other than declaring these extra dependencies outright in and regenerating lockfile to reflect that. I'm no longer using daily so not a good fit for maintaining that ;)

Discussion:
<ins> { rustPlatform, callPackage, pkg-config, lib, fetchFromGitHub, libayatana-appindicator, openssl, webkitgtk_4_1, }: rustPlatform.buildRustPackage rec { pname = "gg-jj"; version = "0.20.0"; src = fetchFromGitHub { owner = "gulbanana"; repo = "gg"; rev = "refs/tags/v${version}"; hash = "sha256-xOi/AUlH0FeenTXz3hsDYixCEl+yr22PGy6Ow4TKxY0="; }; sourceRoot = "${src.name}/src-tauri"; webui = callPackage ./webui.nix { inherit src pname version meta ; }; env = { OPENSSL_NO_VENDOR = 1; }; buildInputs = [ webkitgtk_4_1 openssl ]; nativeBuildInputs = [ pkg-config ]; cargoHash = "sha256-u3SkRA7327ZwqEnB+Xq2JDbI0k5HfeKzV17dvQ8B6xk="; postPatch = '' buildRoot=$(pwd) pushd $cargoDepsCopy/libappindicator-sys oldHash=$(sha256sum src/lib.rs | cut -d " " -f 1) substituteInPlace src/lib.rs  --replace-fail "libayatana-appindicator3.so.1" "${libayatana-appindicator}/lib/libayatana-appindicator3.so.1" substituteInPlace .cargo-checksum.json  --replace-fail $oldHash $(sha256sum src/lib.rs | cut -d " " -f 1) popd pushd $cargoDepsCopy/jj-cli oldHash=$(sha256sum build.rs | cut -d " " -f 1) substituteInPlace build.rs  --replace-fail 'let path = std::env::var("CARGO_MANIFEST_DIR").unwrap();' "let path = "$buildRoot";" substituteInPlace .cargo-checksum.json  --replace-fail $oldHash $(sha256sum build.rs | cut -d " " -f 1) popd substituteInPlace ./tauri.conf.json  --replace-fail '"frontendDist": "../dist"' '"frontendDist": "${webui}"'  --replace-fail '"beforeBuildCommand": "npm run build"' '"beforeBuildCommand": ""' ''; meta = { homepage = "https://github.com/gulbanana/gg"; changelog = "https://github.com/gulbanana/gg/releases/tag/v${version}"; description = "GUI for jj users"; maintainers = with lib.maintainers; [ bot-wxt1221 ]; mainProgram = "gg"; license = lib.licenses.apsl20; }; } </ins>

<ins> { version, src, pname, pnpm, meta, buildNpmPackage, }: buildNpmPackage { inherit version src meta; pname = "${pname}-webui"; npmDepsHash = "sha256-oHBFuX65D/FgnGa03jjpIKAdH8Q4c2NrpD64bhfe720="; buildPhase = '' runHook preBuild node --max_old_space_size=1024000 ./node_modules/vite/bin/vite.js build runHook postBuild ''; installPhase = '' runHook preInstall cp -r dist $out runHook postInstall ''; } </ins>