This time I just mounted your CudaText disk image and ran xattr:
trev@macmini7 [/Users/trev] $ xattr -rv /Volumes/CudaText/CudaText.app
/Volumes/CudaText/CudaText.app/Contents/Info.plist: com.apple.FinderInfo
/Volumes/CudaText/CudaText.app/Contents/MacOS/cudatext: com.apple.FinderInfo
/Volumes/CudaText/CudaText.app/Contents/PkgInfo: com.apple.FinderInfo
/Volumes/CudaText/CudaText.app/Contents/Resources/cudatext.icns: com.apple.FinderInfo
/Volumes/CudaText/CudaText.app/Contents/Resources/data/autocomplete/Bash script.acp: com.apple.FinderInfo
/Volumes/CudaText/CudaText.app/Contents/Resources/data/autocomplete/Batch files.acp: com.apple.FinderInfo
/Volumes/CudaText/CudaText.app/Contents/Resources/data/autocomplete/C++.acp: com.apple.FinderInfo
/Volumes/CudaText/CudaText.app/Contents/Resources/data/autocomplete/C.acp: com.apple.FinderInfo
/Volumes/CudaText/CudaText.app/Contents/Resources/data/autocomplete/Lua.acp: com.apple.FinderInfo
/Volumes/CudaText/CudaText.app/Contents/Resources/data/autocomplete/PHP_.acp: com.apple.FinderInfo
[...]
Every file has a FinderInfo attribute.
If I mount other disk images downloaded from the web, I get the expected result with the only attribute on each file being the quarantine flag:
trev@macmini7 [/Users/trev/Downloads] $ xattr -rv /Volumes/TG\ Pro/
/Volumes/TG Pro//.DS_Store: com.apple.FinderInfo
/Volumes/TG Pro//TG Pro.app/Contents/_CodeSignature/CodeResources: com.apple.quarantine
/Volumes/TG Pro//TG Pro.app/Contents/_CodeSignature: com.apple.quarantine
/Volumes/TG Pro//TG Pro.app/Contents/Frameworks/libswiftAppKit.dylib: com.apple.quarantine
/Volumes/TG Pro//TG Pro.app/Contents/Frameworks/libswiftCore.dylib: com.apple.quarantine
/Volumes/TG Pro//TG Pro.app/Contents/Frameworks/libswiftCoreData.dylib: com.apple.quarantine
/Volumes/TG Pro//TG Pro.app/Contents/Frameworks/libswiftCoreFoundation.dylib: com.apple.quarantine
[...]
The data in the FinderInfo attributes appears to be invalid, eg on the executable (identical to every other file):
trev@macmini7 [/Users/trev/Downloads] $ xattr -lvxs /Volumes/CudaText/CudaText.app/Contents/MacOS/cudatext
/Volumes/CudaText/CudaText.app/Contents/MacOS/cudatext: com.apple.FinderInfo:
00000000 3F 3F 3F 3F 3F 3F 3F 3F 00 00 00 00 00 00 00 00 |????????........|
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
00000020
The CoreServices.Framework has a header file, Finder.h, which defines the structures used for file information:
struct FileInfo {
OSType fileType; /* The type of the file */
OSType fileCreator; /* The file's creator */
UInt16 finderFlags; /* ex: kHasBundle, kIsInvisible... */
Point location; /* File's location in the folder */
/* If set to {0, 0}, the Finder will place the item automatically */
UInt16 reservedField; /* (set to 0) */
};
[...]
typedef struct ExtendedFileInfo ExtendedFileInfo;
struct ExtendedFolderInfo {
Point scrollPosition; /* Scroll position (for icon views) */
SInt32 reserved1; /* Reserved (set to 0) */
UInt16 extendedFinderFlags; /* Extended flags (custom badge, routing info...) */
SInt16 reserved2; /* Reserved (set to 0). Comment ID if high-bit is clear */
SInt32 putAwayFolderID; /* Put away folder ID */
};
So, I guess it's possible the Linux filesystem is using the same bytes for something different and they're being mistaken for FinderInfo attributes. If you can zero the relevant bytes on Linux, it may solve the problem on macOS.