Opened 4 weeks ago

Last modified 4 weeks ago

#74230 new defect

findutils 4.11.0_0 remains broken on macOS Tahoe

Reported by: seamusdemora (Seamus) Owned by:
Priority: Normal Milestone:
Component: ports Version: 2.12.5
Keywords: updatedb locate findutils Cc:
Port: findutils

Description

This ticket is (more or less) a continuation of ticket #73455, but it does contain a potential work-around to get some use from it.

General comments & blether: findutils consists of two packages AFAIK: find, and locate. While find seems to be generally functional on my systems, locate (at least as installed on my macOS 26 system) is virtually useless. The recent flurry of upstream activity at GNU that apparently led to the 4.11 release has not helped cure the issues reported in #73455. I subscribed to the GNU bug-findutils mailing list, and submitted a report summarizing the issues I saw in macOS. AFAIK, there was no reply to my report other than a terse message from the developer that he had no Mac hardware to develop or test with. I think this means that no help is forthcoming from the GNU findutils team!

Description of the Issue: Before locate can be put to use, a database must be built using the updatedb utility. Here's what I see immediately after performing the findutils update to ver 4.11.0:

% sudo updatedb
gfind: '/Library/Caches/com.apple.amsengagementd.classicdatavault': Operation not permitted
gfind: '/Library/Caches/com.apple.aneuserd': Operation not permitted
gfind: '/Library/Caches/com.apple.aned': Operation not permitted
gfind: '/System/Library/AssetsV2/com_apple_MobileAsset_UAF_FM_Visual': Operation not permitted
gfind: '/System/Library/AssetsV2/com_apple_MobileAsset_UAF_FM_GenerativeModels': Operation not permitted
gfind: '/System/Library/AssetsV2/com_apple_MobileAsset_UAF_IF_Planner': Operation not permitted
gfind: '/System/Library/AssetsV2/com_apple_MobileAsset_UAF_FM_Overrides': Operation not permitted
gfind: '/System/Volumes/Data/Library/Caches/com.apple.amsengagementd.classicdatavault': Operation not permitted
gfind: '/System/Volumes/Data/Library/Caches/com.apple.aneuserd': Operation not permitted
gfind: '/System/Volumes/Data/Library/Caches/com.apple.aned': Operation not permitted
gfind: failed to read file names from file system at or below '/': No such file or directory
% 

The last line is not encouraging: gfind: failed to read file names from file system at or below '/': No such file or directory - I've no idea what this actually means, but in practice after running sudo updatedb, locate failed to find a test file I inserted in my home folder /Users/seamus... i.e. locate is completely and totally useless!

Perusing man updatedb suggested that the options --localpaths and --prunepaths might possibly be useful as a kludge-y work-around to the issue. Here's how it went:

A kludge-y work-around:

% LOCALPATHS='/Applications /bin /cores /dev /Library /opt /private/etc /sbin /Users /usr' 

% PRUNEPATHS='/System/Library/AssetsV2 /System/Volumes/Data/Library/Caches /Library/Caches' 

% sudo updatedb --localpaths=$LOCALPATHS --prunepaths=$PRUNEPATHS
gfind: '/Users/seamus/Library/Mobile Documents/com~apple~ScriptEditor2/Documents/BashScript.workflow': Operation timed out

%  % locate yt-dlp.conf
/Users/seamus/.local/bin/yt-dlp.conf
/Users/seamus/yt-dlp.conf

Some Documentation: From #73455 it seems that the MacPorts developer for findutils is AWOL; I take this to mean that the find-utils package is not currently being supported for macOS. Consequently, I wonder if it might be helpful to other lost souls if an "installation note" was added to findutils - in the spirit of the output from last night's update:

--->  Some of the ports you installed have notes:
  coreutils has the following notes:
    The tools provided by GNU coreutils are prefixed with the character 'g' by default to distinguish them from the BSD commands.
    For example, cp becomes gcp and ls becomes gls.
    
    If you want to use the GNU tools by default, add this directory to the front of your PATH environment variable:
        /opt/local/libexec/gnubin/

i.e.

--->  Some of the ports you installed have notes:
  findutils has the following notes:
    The 'locate' tool provided by GNU findutils has unresolved issues on later versions of macOS.
    For example, the 'updatedb' command fails w/ "failed to read file names from file system at or below '/'".
   
    If you want to use {{{locate}}}, consider the following sequence of commands to execute {{{updatedb}}}:
    LOCALPATHS='/Applications /bin /cores /dev /Library /opt /private/etc /sbin /Users /usr'
    PRUNEPATHS='/System/Library/AssetsV2 /System/Volumes/Data/Library/Caches /Library/Caches'
    sudo updatedb --localpaths=$LOCALPATHS --prunepaths=$PRUNEPATHS

Change History (3)

comment:1 Changed 4 weeks ago by seamusdemora (Seamus)

Keywords: updatedb locate added; locatedb removed

comment:2 Changed 4 weeks ago by reneeotten (Renee Otten)

so why don’t you continue the discussion there then….? Please do that and close this ticket - no point of having more than one.

comment:3 in reply to:  2 Changed 4 weeks ago by seamusdemora (Seamus)

Replying to reneeotten:

so why don’t you continue the discussion there then….? Please do that and close this ticket - no point of having more than one.

Different version, and different issues. This ticket is also different in that it proposes a "work-around" for one of the problems - but not ALL. ... that's why.

Note: See TracTickets for help on using tickets.