New issue
Advanced search Search tips

Issue 668213 link

Starred by 2 users

Issue metadata

Status: WontFix
Owner:
Closed: Nov 2016
Components:
EstimatedDays: ----
NextAction: ----
OS: Mac
Pri: 3
Type: Bug



Sign in to add a comment

ninja -t clean has errors trying to clean Mac official build

Project Member Reported by asvitk...@chromium.org, Nov 23 2016

Issue description

ninja -t clean has errors trying to clean Mac official build

After building 'chrome' target in an official Mac build with following gn args:

is_official_build = true
is_chrome_branded = true
is_debug = false

And then running: ninja -C out/gn-official -t clean

The following errors are seen:

ninja: error: remove(dump_syms.dSYM): Directory not empty
ninja: error: remove(Google Chrome.app/Contents/Resources/com.google.Chrome.manifest): Directory not empty
ninja: error: remove(Google Chrome Framework.framework/Resources/app_mode_loader.app): Directory not empty
ninja: error: remove(Google Chrome Helper.dSYM): Directory not empty
ninja: error: remove(Google Chrome Framework.framework/Frameworks/KeystoneRegistration.framework): Directory not empty
ninja: error: remove(app_mode_loader.dSYM): Directory not empty
ninja: error: remove(infoplist_strings_tool.dSYM): Directory not empty
ninja: error: remove(proto_zero_plugin.dSYM): Directory not empty
ninja: error: remove(tls_edit.dSYM): Directory not empty
ninja: error: remove(character_data_generator.dSYM): Directory not empty
ninja: error: remove(PepperFlash/PepperFlashPlayer.plugin): Directory not empty
ninja: error: remove(bro.dSYM): Directory not empty
ninja: error: remove(crashpad_handler.dSYM): Directory not empty
ninja: error: remove(flatc.dSYM): Directory not empty
ninja: error: remove(protoc.dSYM): Directory not empty
ninja: error: remove(widevinecdmadapter.plugin.dSYM): Directory not empty
ninja: error: remove(genmacro.dSYM): Directory not empty
ninja: error: remove(genmodule.dSYM): Directory not empty
ninja: error: remove(genperf.dSYM): Directory not empty
ninja: error: remove(genstring.dSYM): Directory not empty
ninja: error: remove(genversion.dSYM): Directory not empty
ninja: error: remove(re2c.dSYM): Directory not empty
ninja: error: remove(yasm.dSYM): Directory not empty
ninja: error: remove(mkpeephole.dSYM): Directory not empty
ninja: error: remove(mksnapshot.dSYM): Directory not empty

Seems ninja doesn't know how to delete some non-empty dirs.
 

Comment 1 by ajha@chromium.org, Nov 24 2016

Components: Build
Owner: thakis@chromium.org
Status: Assigned (was: Untriaged)
mac triage: help us, thakis@, you're our only hope :)

Comment 3 by thakis@chromium.org, Nov 29 2016

Status: WontFix (was: Assigned)
That happens for non-official builds too. -t clean removes files that are listed as outputs in the ninja files. If a build edge produces an output that's not listed as output, -t clean won't delete it. If one such file ends up in a directory that's a build output, ninja tries to delete that dir, but since it's non-empty that fails (arguably as it should: ninja shouldn't delete files it knows nothing about).

I think this is harmless.


Shouldn't all build edges list all outputs they produce? (i.e. the bug being about the outputs not listed as opposed to the ninja tools itself)

Comment 5 by thakis@chromium.org, Nov 29 2016

Ideally yes. But for example for dSYM files you'd have to copy the knowledge which files dsymutil creates out of dysmutil and list them somewhere, and other tools have the equivalent issue. If you want to work on this, feel free, it's kind of useful. But it's also a larger project.

Sign in to add a comment