Skip to content

Use GitHub rsync mirror for interop builds#1925

Merged
oferchen merged 1 commit into
masterfrom
implement-missing-components-for-rsync-compatibility
Nov 4, 2025
Merged

Use GitHub rsync mirror for interop builds#1925
oferchen merged 1 commit into
masterfrom
implement-missing-components-for-rsync-compatibility

Conversation

@oferchen
Copy link
Copy Markdown
Owner

@oferchen oferchen commented Nov 4, 2025

Summary

  • update the interop harness to clone upstream rsync releases from the GitHub RsyncProject mirror and run prepare-source before configuring when necessary
  • guard the harness against missing git, disable interactive prompts, and keep the version matrix unchanged
  • document the new cloning workflow for the interop agent so contributors keep the tested tags in sync

Testing

  • not run (not applicable)

https://chatgpt.com/codex/tasks/task_e_69099cca5dc48323ac395f01ac4997b2

@oferchen oferchen merged commit 5c38b11 into master Nov 4, 2025
@oferchen oferchen deleted the implement-missing-components-for-rsync-compatibility branch November 4, 2025 06:33
oferchen added a commit that referenced this pull request May 13, 2026
Wire the existing IORING_OP_RENAMEAT (task #1920) and IORING_OP_LINKAT
(task #1921) opcode wrappers into the temp-file commit and hardlink
finalization paths respectively.

On Linux 5.11+ with io_uring available, temp-file renames in
DestinationWriteGuard::commit_named_temp_file() now submit an
IORING_OP_RENAMEAT SQE instead of a synchronous rename(2) syscall.

On Linux 5.15+ with io_uring available, hardlink creation in
HardlinkApplyTracker, create_hard_link(), and the --link-dest path
now submit an IORING_OP_LINKAT SQE instead of a synchronous link(2).

Both paths fall back transparently to std::fs::rename / std::fs::hard_link
on non-Linux platforms, older kernels, or when io_uring is disabled.

Two new convenience functions in fast_io expose the try-or-fallback
pattern: try_rename_via_io_uring() and try_hard_link_via_io_uring(),
returning Option<io::Result<()>> so callers can fall through to the
portable implementation when None is returned.

Closes #1924, closes #1925.
oferchen added a commit that referenced this pull request May 13, 2026
Add `fast_io::hard_link()` convenience function that tries io_uring
LINKAT on Linux 5.15+ and falls back to `std::fs::hard_link`. Replace
four duplicate `hard_link_with_io_uring_fallback()` private functions
across engine and transfer crates with the new centralized API.
oferchen added a commit that referenced this pull request May 13, 2026
Add `fast_io::hard_link()` convenience function that tries io_uring
LINKAT on Linux 5.15+ and falls back to `std::fs::hard_link`. Replace
four duplicate `hard_link_with_io_uring_fallback()` private functions
across engine and transfer crates with the new centralized API.
oferchen added a commit that referenced this pull request May 13, 2026
… (#4003)

* feat(fast_io): wire IORING_OP_LINKAT into hardlink finalization (#1925)

Add `fast_io::hard_link()` convenience function that tries io_uring
LINKAT on Linux 5.15+ and falls back to `std::fs::hard_link`. Replace
four duplicate `hard_link_with_io_uring_fallback()` private functions
across engine and transfer crates with the new centralized API.

* fix: remove unused std::io import in directory links
oferchen added a commit that referenced this pull request May 18, 2026
Wire the existing IORING_OP_RENAMEAT (task #1920) and IORING_OP_LINKAT
(task #1921) opcode wrappers into the temp-file commit and hardlink
finalization paths respectively.

On Linux 5.11+ with io_uring available, temp-file renames in
DestinationWriteGuard::commit_named_temp_file() now submit an
IORING_OP_RENAMEAT SQE instead of a synchronous rename(2) syscall.

On Linux 5.15+ with io_uring available, hardlink creation in
HardlinkApplyTracker, create_hard_link(), and the --link-dest path
now submit an IORING_OP_LINKAT SQE instead of a synchronous link(2).

Both paths fall back transparently to std::fs::rename / std::fs::hard_link
on non-Linux platforms, older kernels, or when io_uring is disabled.

Two new convenience functions in fast_io expose the try-or-fallback
pattern: try_rename_via_io_uring() and try_hard_link_via_io_uring(),
returning Option<io::Result<()>> so callers can fall through to the
portable implementation when None is returned.

Closes #1924, closes #1925.
oferchen added a commit that referenced this pull request May 18, 2026
… (#4003)

* feat(fast_io): wire IORING_OP_LINKAT into hardlink finalization (#1925)

Add `fast_io::hard_link()` convenience function that tries io_uring
LINKAT on Linux 5.15+ and falls back to `std::fs::hard_link`. Replace
four duplicate `hard_link_with_io_uring_fallback()` private functions
across engine and transfer crates with the new centralized API.

* fix: remove unused std::io import in directory links
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant