Your one-stop-cake-shop for everything Freshly Baked has to offer

fix(pm/josh): update to master to fix redirect bug

In https://github.com/josh-project/josh/pull/1704 I fixed the way Josh
works with redirects. Since as that's not yet in a release, we'll need
to pull in Josh's master for it to be effective.

The bug prevented Josh working entirely with Tangled, since as Tangled
redirects .git -> bare in repo URLs rather than the other way around. As
we use Josh with Tangled, there was a period of time where we couldn't
clone or pull through it at all. This had a multitude of knock-on
effects including making it difficult for me to upstream patches (so I
often didn't bother) and entirely breaking our auto-sync mechanism
(which relies on Josh to pull out packetmix from patisserie)

Changed files
+51 -5
packetmix
npins
packages
systems
teal
+13
packetmix/npins/sources.json
··· 221 221 "url": "https://github.com/nix-community/impermanence/archive/4b3e914cdf97a5b536a889e939fb2fd2b043a170.tar.gz", 222 222 "hash": "sha256-LJggUHbpyeDvNagTUrdhe/pRVp4pnS6wVKALS782gRI=" 223 223 }, 224 + "josh": { 225 + "type": "Git", 226 + "repository": { 227 + "type": "GitHub", 228 + "owner": "josh-project", 229 + "repo": "josh" 230 + }, 231 + "branch": "master", 232 + "submodules": false, 233 + "revision": "fc2bb5f79a4fc96f0adb1e015b9ac155beac7b3a", 234 + "url": "https://github.com/josh-project/josh/archive/fc2bb5f79a4fc96f0adb1e015b9ac155beac7b3a.tar.gz", 235 + "hash": "sha256-/lwBR2FD5nC9Qn+0pgd5APw97auMDg/NeZl5I9VrgZk=" 236 + }, 224 237 "lanzaboote": { 225 238 "type": "GitRelease", 226 239 "repository": {
+1
packetmix/packages/default.nix
··· 11 11 ./bluesky-pds 12 12 ./collabora-gtimelog 13 13 ./headscale 14 + ./josh 14 15 ./kavita 15 16 ./lua-multipart 16 17 ./OpenLinkHub
+22
packetmix/packages/josh/default.nix
··· 1 + # SPDX-FileCopyrightText: 2025 FreshlyBakedCake 2 + # 3 + # SPDX-License-Identifier: MIT 4 + { config, ... }: 5 + { 6 + config.packages.josh = { 7 + systems = [ "x86_64-linux" ]; 8 + package = 9 + { system, rustPlatform, ... }: 10 + config.inputs.nixos-unstable.result.${system}.josh.overrideAttrs (prev: { 11 + src = config.inputs.josh.result; 12 + 13 + cargoDeps = rustPlatform.fetchCargoVendor { 14 + name = "josh"; 15 + 16 + src = config.inputs.josh.result; 17 + 18 + hash = "sha256-zY2dCDHhPTggZPhFoONHA4NIpv6k+hzKOUQDzheA/28="; 19 + }; 20 + }); 21 + }; 22 + }
+15 -5
packetmix/systems/teal/josh.nix
··· 3 3 # 4 4 # SPDX-License-Identifier: MIT 5 5 6 - { pkgs, lib, ... }: 6 + { 7 + project, 8 + pkgs, 9 + lib, 10 + ... 11 + }: 12 + let 13 + josh = project.packages.josh.result.${pkgs.system}; 14 + in 7 15 { 8 16 users.users.git = { 9 17 isSystemUser = true; 10 18 group = "git"; 11 - shell = "${pkgs.josh}/bin/josh-ssh-shell"; 19 + shell = "${josh}/bin/josh-ssh-shell"; 12 20 }; 13 21 users.groups.git = { }; 14 22 ··· 20 28 environment = 21 29 let 22 30 url_config = repo: '' 23 - [url "https://tangled.org/@freshlybakedca.ke/${repo}"] 31 + [url "https://tangled.org/freshlybakedca.ke/${repo}.git"] 32 + insteadOf = "https://tangled.org/freshlybakedca.ke/${repo}.git" 24 33 insteadOf = "https://tangled.org/@freshlybakedca.ke/${repo}.git" 25 34 insteadOf = "ssh://git@tangled.org/freshlybakedca.ke/${repo}.git" 26 35 ··· 28 37 pushInsteadOf = "ssh://git@tangled.org/freshlybakedca.ke/${repo}.git" 29 38 ''; 30 39 other_url_config = repo: '' 31 - [url "https://tangled.org/@${repo}"] 40 + [url "https://tangled.org/${repo}.git"] 41 + insteadOf = "https://tangled.org/freshlybakedca.ke/${repo}.git" 32 42 insteadOf = "https://tangled.org/@freshlybakedca.ke/${repo}.git" 33 43 insteadOf = "ssh://git@tangled.org/freshlybakedca.ke/${repo}.git" 34 44 ··· 56 66 }; 57 67 58 68 script = 59 - "${pkgs.josh}/bin/josh-proxy" 69 + "${josh}/bin/josh-proxy" 60 70 + " --local /var/lib/josh/local" 61 71 + " --remote https://tangled.org/@freshlybakedca.ke" 62 72 + " --remote ssh://git@tangled.org/freshlybakedca.ke"