Skip to content

feat: add --move option to ltfs_ordered_copy#600

Open
hugo-hur wants to merge 3 commits into
LinearTapeFileSystem:mainfrom
hugo-hur:ltfs_ordered_copy-add-move
Open

feat: add --move option to ltfs_ordered_copy#600
hugo-hur wants to merge 3 commits into
LinearTapeFileSystem:mainfrom
hugo-hur:ltfs_ordered_copy-add-move

Conversation

@hugo-hur

@hugo-hur hugo-hur commented Jun 9, 2026

Copy link
Copy Markdown

Summary of changes

This pull request includes following changes or fixes.

  • Add a move mode to ltfs_ordered_copy that deletes each source only after
    it has been successfully copied to the destination, so the LTFS tape read
    order is preserved and no data is lost if a copy fails.
  • The single-file copy path now honours -p as well (copy2 vs copy).

Description

  • Each CopyItem removes its source after a successful copy; a failed copy
    (or a failed source removal) leaves the source in place.
  • --move implies -p so file metadata is preserved like a normal mv.
  • After a recursive move, emptied source directory trees are pruned
    bottom-up; directories still holding files (e.g. a copy failed, or a
    non-recursive directory was skipped) are left untouched.
  • Log output and error messages now say "move"/"Moved" in move mode.
  • Document --move in man/ltfs_ordered_copy.1 and the SGML source.

Checklist:

  • My code follows the style guidelines of this project
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • I have confirmed my fix is effective or that my feature works

hugo-hur added 3 commits June 9, 2026 15:25
… above the special case, so len(args.keep_tree) no longer hits None
icu-config was deprecated and removed in ICU 63+, so it is absent on
modern Debian/Ubuntu where only libicu-dev with pkg-config support is
shipped. The pkg-config fallback used the monolithic "icu" module name,
which those distros no longer provide, so configure failed to find ICU
even when it was installed.

Try the split modules "icu-uc" and "icu-i18n" (used since ICU 58) first,
falling back to the legacy "icu" module for older systems. Also fall back
to "pkg-config --modversion icu-uc" for the --enable-icu-6x version check
when icu-config is unavailable.

The icu-config path is still tried first, so older distros that still
provide it continue to work unchanged.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant