aonez / Keka

The macOS & iOS file archiver

Home Page:https://www.keka.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

[REQ] Allow case-sensitive compression?

mejofi opened this issue · comments

Is your feature request related to a problem? Please describe

When creating an encrypted 7Z archive from a folder on a case-sensitive volume, keka7zz exits with error code 2 whenever it encounters files that would be duplicates on a regular volume, such as 'Photo.jpg' and 'photo.jpg'.

Describe the solution you'd like

Some way to have Keka enable the -ssc flag for 7Z archives, either via the GUI or as a hidden preference. Or perhaps it could be enabled by default, for compression?

Describe alternatives you've considered

The source data comes from a case-sensitive system, where we cannot enforce better file name handling, and is synced to a case-sensitive APFS volume to be able to create snapshots. Tried to run keka7zz manually with the same flags as reported by the error message plus the -ssc flag, but it exits with a Trace/BPT trap: 5 error, meaning we cannot work around it.

Using the same version of 7zz as downloaded from the main website works as expected; fails with the same error, succeeds when the -ssc flag is added.

Additional context

Redacted output from error message follows;

OS: Version 14.3.1 (Build 23D60) (arm64)
Keka: v1.3.7-r5302 (MAS) (Sandboxed) (en-GB)
Binary used: keka7zz
Arguments: (
    a,
    "-t7z",
    "-snh",
    "-snl",
    "-mx5",
    "-p",
    "-mhe",
    "-ms=on",
    "-xr!.DS_Store",
    "-xr!.localized",
    "-xr!._*",
    "-xr!.FBC*",
    "-xr!.Spotlight-V100",
    "-xr!.Trash",
    "-xr!.Trashes",
    "-xr!.background",
    "-xr!.TemporaryItems",
    "-xr!.fseventsd",
    "-xr!.com.apple.timemachine.*",
    "-xr!.VolumeIcon.icns",
    "-bsp1",
    "-spd",
    "/Volumes/CaseSensitiveVolume/client-backups-20240303/website-20240303.7z",
    "/Volumes/CaseSensitiveVolume/client-backups-20240303/website-20240303"
)

7-Zip (z) 23.01 (arm64) : Copyright (c) 1999-2023 Igor Pavlov : 2023-06-20 : Modified by aone for Keka
 64-bit arm_v:8 locale=en_US.UTF-8 Threads:12 OPEN_MAX:4864 temp_path:/Users/[REDACTED]/Library/Containers/com.aone.keka/Data/Library/Application Support/Keka/Temp/, ASM

Scanning the drive:
  0M Scan 
1091M 14514 Scan  /Volumes/CaseSensitiveVolume/client . [REDACTED]
1744 folders, 16396 files, 1608287272 bytes (1534 MiB)


Creating archive: /Volumes/CaseSensitiveVolume/client-backups-20240303/website-20240303.7z




ERROR:
Duplicate filename on disk:
website-20240303/path/to/file/in/subdirectory/Photo.jpg
website-20240303/path/to/file/in/subdirectory/photo.jpg

Error code 2

Additional context (2)

Relevant version info from local 7zz binary;

$ ~/bin/7zz

7-Zip (z) 23.01 (arm64) : Copyright (c) 1999-2023 Igor Pavlov : 2023-06-20
 64-bit arm_v:8 locale=UTF-8 Threads:12 OPEN_MAX:256, ASM
commented

Thanks a lot @mejofi. You're right, this should be not just default but mandatory. Here a build with this flag implemented:
https://github.com/aonez/Keka/releases/download/dev-test-builds/Keka-v1.4.0-dev.r5349.7z

When testing with the dev test build, the archive is created with a .exe suffix, instead of .7z? It expands, and I can rename it if needs be, but this seems like an unintended change?

Ah, never mind, apparently 'Self extracting archive for Windows' is a new option in 1.4.0, and turned on by default? Off by default may be a better choice 😄

Looks like it works otherwise, though.

commented

Yes sorry this is a mistake in that build, that option shouldn't be enabled by default. Will release a new dev version today with that fixed.

commented

The fixed version is now here: https://beta.keka.io

Thanks again @mejofi

No longer seems to turn on when switching between the current MAS release and the beta 👍🏻

This build seems to have an odd UI issue with overlapping fields, though?
Screenshot 2024-03-05 at 15 08 15

commented

Thanks again! Fixed it already, will publish when I have more changes/features.