| ... | ... | @@ -56,6 +56,9 @@ location_tok: std.zig.Ast.TokenIndex, |
| 56 | 56 | hash_tok: std.zig.Ast.OptionalTokenIndex, |
| 57 | 57 | name_tok: std.zig.Ast.TokenIndex, |
| 58 | 58 | lazy_status: LazyStatus, |
| 59 | /// Same as `parent_packge_root` except it is unchanged when recursing into |
| 60 | /// relative file paths (as opposed to URL). |
| 61 | remote_package_root: Cache.Path, |
| 59 | 62 | parent_package_root: Cache.Path, |
| 60 | 63 | parent_manifest_ast: ?*const std.zig.Ast, |
| 61 | 64 | prog_node: std.Progress.Node, |
| ... | ... | @@ -544,8 +547,11 @@ pub fn run(f: *Fetch) RunError!void { |
| 544 | 547 | // will already have been resolved to no longer have extra ".." or |
| 545 | 548 | // "." components. |
| 546 | 549 | assert(job_queue.local_storage != null); |
| 547 | | assert(pkg_root.root_dir.eql(f.parent_package_root.root_dir)); |
| 548 | | if (!std.mem.startsWith(u8, pkg_root.sub_path, f.parent_package_root.sub_path)) return f.fail( |
| 550 | log.debug("checking pkg root \"{s}\" against parent package root \"{s}\"", .{ |
| 551 | pkg_root.sub_path, f.remote_package_root.sub_path, |
| 552 | }); |
| 553 | assert(pkg_root.root_dir.eql(f.remote_package_root.root_dir)); |
| 554 | if (!std.mem.startsWith(u8, pkg_root.sub_path, f.remote_package_root.sub_path)) return f.fail( |
| 549 | 555 | f.location_tok, |
| 550 | 556 | try eb.printString("dependency path outside project: '{f}'", .{pkg_root}), |
| 551 | 557 | ); |
| ... | ... | @@ -591,6 +597,7 @@ pub fn run(f: *Fetch) RunError!void { |
| 591 | 597 | log.debug("using fork {f} for {s}", .{ fork.path, fork.manifest.name }); |
| 592 | 598 | fork.uses += 1; |
| 593 | 599 | f.package_root = fork.path; |
| 600 | f.remote_package_root = f.package_root; |
| 594 | 601 | f.manifest_ast = fork.manifest_ast; |
| 595 | 602 | f.manifest = fork.manifest; |
| 596 | 603 | f.have_manifest = true; |
| ... | ... | @@ -604,6 +611,7 @@ pub fn run(f: *Fetch) RunError!void { |
| 604 | 611 | if (package_root.root_dir.handle.access(io, package_root.sub_path, .{})) |_| { |
| 605 | 612 | assert(f.lazy_status != .unavailable); |
| 606 | 613 | f.package_root = package_root; |
| 614 | f.remote_package_root = f.package_root; |
| 607 | 615 | try loadManifest(f, f.package_root); |
| 608 | 616 | try checkBuildFileExistence(f); |
| 609 | 617 | if (!job_queue.recursive) return; |
| ... | ... | @@ -782,6 +790,7 @@ fn runResource( |
| 782 | 790 | } else { |
| 783 | 791 | f.package_root = tmp_directory_path; |
| 784 | 792 | } |
| 793 | f.remote_package_root = f.package_root; |
| 785 | 794 | |
| 786 | 795 | if (!disable_recompress) { |
| 787 | 796 | // Spin off a task to recompress the tarball, with filtered files deleted, into |
| ... | ... | @@ -993,6 +1002,7 @@ fn queueJobsForDeps(f: *Fetch) RunError!void { |
| 993 | 1002 | .all => .eager, |
| 994 | 1003 | }, |
| 995 | 1004 | .parent_package_root = f.package_root, |
| 1005 | .remote_package_root = f.remote_package_root, |
| 996 | 1006 | .parent_manifest_ast = &f.manifest_ast, |
| 997 | 1007 | .prog_node = f.prog_node, |
| 998 | 1008 | .job_queue = f.job_queue, |