Closed noib3 closed 3 years ago
Hello @noib3 , will you provide /tmp/odourless-inject.log
and /tmp/odourless-daemon.log
?
Here you go: odourless-daemon.log and odourless-inject.log. I usually quit Finder as soon as I log in, so that's why most of the lines in odourless-daemon.log
are just I: finder not running
.
@noib3 I've release a new version 0.0.6, would you please try this? Don't forget to reinstall daemon.
And check logs.
tail -f /usr/local/var/.odourless_cage/daemon.log
, tail -f /usr/local/var/.odourless_cage/inject.log
You should see something like this
I: module: 0x7ffe01c05940
I: bootstrapFunc: 0x100c4bdd0
I: finder pid: 45016
I: odourless-inject init
I: getattrlist(path: /Volumes/com.apple.TimeMachine.localsnapshots/Backups.backupdb/xiaozhuai-master/2020-12-10-115314/.DS_Store, list: 0x70000f3eb5d8, buf: 0x70000f3eb210, bufSize: 950, options: 25) ---> getattrlist(path: /usr/local/var/.odourless_cage/Volumes/com.apple.TimeMachine.localsnapshots/Backups.backupdb/xiaozhuai-master/2020-12-10-115314/_DS_Store, list: 0x70000f3eb5d8, buf: 0x70000f3eb210, bufSize: 950, options: 25)
I: getattrlist(path: /Volumes/com.apple.TimeMachine.localsnapshots/Backups.backupdb/xiaozhuai-master/2020-12-10-115314/.DS_Store, list: 0x70000f3ed9d8, buf: 0x70000f3ed1e0, bufSize: 2022, options: 25) ---> getattrlist(path: /usr/local/var/.odourless_cage/Volumes/com.apple.TimeMachine.localsnapshots/Backups.backupdb/xiaozhuai-master/2020-12-10-115314/_DS_Store, list: 0x70000f3ed9d8, buf: 0x70000f3ed1e0, bufSize: 2022, options: 25)
I: getattrlist(path: /Volumes/com.apple.TimeMachine.localsnapshots/Backups.backupdb/xiaozhuai-master/2020-12-10-112305/.DS_Store, list: 0x70000f4f15d8, buf: 0x70000f4f1210, bufSize: 950, options: 25) ---> getattrlist(path: /usr/local/var/.odourless_cage/Volumes/com.apple.TimeMachine.localsnapshots/Backups.backupdb/xiaozhuai-master/2020-12-10-112305/_DS_Store, list: 0x70000f4f15d8, buf: 0x70000f4f1210, bufSize: 950, options: 25)
I: getattrlist(path: /Volumes/com.apple.TimeMachine.localsnapshots/Backups.backupdb/xiaozhuai-master/2020-12-10-112305/.DS_Store, list: 0x70000f4f39d8, buf: 0x70000f4f31e0, bufSize: 2022, options: 25) ---> getattrlist(path: /usr/local/var/.odourless_cage/Volumes/com.apple.TimeMachine.localsnapshots/Backups.backupdb/xiaozhuai-master/2020-12-10-112305/_DS_Store, list: 0x70000f4f39d8, buf: 0x70000f4f31e0, bufSize: 2022, options: 25)
I: getattrlist(path: /Volumes/.DS_Store, list: 0x70000f46e5d8, buf: 0x70000f46e210, bufSize: 950, options: 25) ---> getattrlist(path: /usr/local/var/.odourless_cage/Volumes/_DS_Store, list: 0x70000f46e5d8, buf: 0x70000f46e210, bufSize: 950, options: 25)
I: getattrlist(path: /Volumes/.DS_Store, list: 0x70000f4709d8, buf: 0x70000f4701e0, bufSize: 2022, options: 25) ---> getattrlist(path: /usr/local/var/.odourless_cage/Volumes/_DS_Store, list: 0x70000f4709d8, buf: 0x70000f4701e0, bufSize: 2022, options: 25)
I: getattrlist(path: /Users/xiaozhuai/work/odourless/build/dist/.DS_Store, list: 0x70000f780e68, buf: 0x70000f780aa0, bufSize: 950, options: 25) ---> getattrlist(path: /usr/local/var/.odourless_cage/Users/xiaozhuai/work/odourless/build/dist/_DS_Store, list: 0x70000f780e68, buf: 0x70000f780aa0, bufSize: 950, options: 25)
I: getattrlist(path: /Users/xiaozhuai/work/odourless/build/dist/.DS_Store, list: 0x70000f783268, buf: 0x70000f782a70, bufSize: 2022, options: 25) ---> getattrlist(path: /usr/local/var/.odourless_cage/Users/xiaozhuai/work/odourless/build/dist/_DS_Store, list: 0x70000f783268, buf: 0x70000f782a70, bufSize: 2022, options: 25)
I: openx_np(path: /Users/xiaozhuai/work/odourless/build/dist/.DS_Store, flags: 2561, fsec: 0x6000000020c0) ---> openx_np(path: /usr/local/var/.odourless_cage/Users/xiaozhuai/work/odourless/build/dist/_DS_Store, flags: 2561, fsec: 0x6000000020c0)
I: open(path: /Users/xiaozhuai/work/odourless/build/dist/.DS_Store, flags: 2561, mode: 420) ---> open(path: /usr/local/var/.odourless_cage/Users/xiaozhuai/work/odourless/build/dist/_DS_Store, flags: 2561, mode: 420)
I: getattrlist(path: /Users/xiaozhuai/work/odourless/build/dist/.DS_Store, list: 0x70000f784d98, buf: 0x70000f7849f0, bufSize: 926, options: 25) ---> getattrlist(path: /usr/local/var/.odourless_cage/Users/xiaozhuai/work/odourless/build/dist/_DS_Store, list: 0x70000f784d98, buf: 0x70000f7849f0, bufSize: 926, options: 25)
I: getattrlist(path: /Users/xiaozhuai/Downloads/.DS_Store, list: 0x70000f368bb8, buf: 0x70000f3687f0, bufSize: 950, options: 25) ---> getattrlist(path: /usr/local/var/.odourless_cage/Users/xiaozhuai/Downloads/_DS_Store, list: 0x70000f368bb8, buf: 0x70000f3687f0, bufSize: 950, options: 25)
I: getattrlist(path: /Users/xiaozhuai/Downloads/.DS_Store, list: 0x70000f36afb8, buf: 0x70000f36a7c0, bufSize: 2022, options: 25) ---> getattrlist(path: /usr/local/var/.odourless_cage/Users/xiaozhuai/Downloads/_DS_Store, list: 0x70000f36afb8, buf: 0x70000f36a7c0, bufSize: 2022, options: 25)
I: getattrlist(path: /Users/xiaozhuai/wuta_project/wuta_android/wuta_native/assets/.DS_Store, list: 0x70000f368bb8, buf: 0x70000f3687f0, bufSize: 950, options: 25) ---> getattrlist(path: /usr/local/var/.odourless_cage/Users/xiaozhuai/wuta_project/wuta_android/wuta_native/assets/_DS_Store, list: 0x70000f368bb8, buf: 0x70000f3687f0, bufSize: 950, options: 25)
I: getattrlist(path: /Users/xiaozhuai/wuta_project/wuta_android/wuta_native/assets/.DS_Store, list: 0x70000f36afb8, buf: 0x70000f36a7c0, bufSize: 2022, options: 25) ---> getattrlist(path: /usr/local/var/.odourless_cage/Users/xiaozhuai/wuta_project/wuta_android/wuta_native/assets/_DS_Store, list: 0x70000f36afb8, buf: 0x70000f36a7c0, bufSize: 2022, options: 25)
@noib3 Hey bro, does it work now? : ) Waiting for your further feedback.
@xiaozhuai Sorry I was a little busy yesterday. I'm still experiencing the same issues even with version 0.0.6. The GUI interface still says that Odourless should be placed in /Applications even if it already is, and .DS_Store files are still created when I start Finder.
However I noticed that when I quit Finder they are deleted. Is Odourless supposed to delete .DS_Store files after the Finder creates them or is it supposed to prevent Finder from creating them? If it's the first one then it works.
@noib3 Never mind : ) Odourless would not search and delete .DS_Store files that already exists. However, it move .DS_Store file to cage when Finder access it next time. And if Finder wants to create a new one .DS_Store, it will be in cage directory. It means Odourless not only prevent .DS_Store creation and also move exists .DS_Store to cage.
You can delete .DS_Store manually. sudo find / -name ".DS_Store" -delete
Or just let Odourless handle it, all .DS_Store will be in cage directory, finally.
And the installation check, I don't know why it happen. I am on 10.15.7 too, and it works fine.
Would you please compile Odourless by yourself and check file src/gui/odourless.cpp
func OdourlessApp::OnInit
?
It's pretty easy to build Odourless, just follow the instruction.
Thanks!
And if Finder wants to create a new one .DS_Store, it will be in cage directory.
Then it doesn't work. After I open Finder a new .DS_Store file is created, but it gets moved to the cage directory if I quit Finder. If I understood how Odourless works correctly, the .DS_Store file should've been created in the cage directory in the first place.
I compiled Odourless from source, this is the content of src/gui/odourless.cpp
:
//
// Created by xiaozhuai on 2019/12/12.
//
#include "Log.h"
#include "MainFrame.h"
#include <wx/wx.h>
#include <OdourlessUtils.h>
#include <ProcessHelper.h>
class OdourlessApp : public wxApp {
public:
OdourlessApp()
: wxApp(),
m_mainFrame(nullptr) {
Log::init();
}
~OdourlessApp() override {
Log::destroy();
}
bool OnInit() override {
if(OdourlessUtils::checkSIPEnabled()) {
wxMessageBox("You must disable SIP to use this application", "SIP Check", wxOK | wxICON_ERROR);
Exit();
return false;
}
#ifdef ODOURLESS_MUST_INSTALL_TO_APPLICATIONS
if(ProcessHelper::getCurrentExecutablePath() != ODOURLESS_INSTALL_PATH "/Contents/MacOS/odourless") {
wxMessageBox("You must install this application under /Applications", "Installation Check", wxOK | wxICON_ERROR);
Exit();
return false;
}
#endif
m_mainFrame = new MainFrame();
m_mainFrame->Show(true);
return true;
}
private:
MainFrame *m_mainFrame;
};
wxIMPLEMENT_APP(OdourlessApp);
Edit: If I compile from source everything seems to work fine.
@noib3 If you compile it from source, then everything seems to work fine? So strange...
@noib3 I make a testing version, would you please run this to help me figure out installation issue? Thanks! It will show a message box print executable path. Odourless_0.0.6_for_testing.zip
@noib3 Hi bro! Merry Christmas! I've release Odourless 0.0.7, and it will be helpful if you can give it a try. Thanks~~
@xiaozhuai I've tested version 0.0.7 and everything seems to be working fine. I no longer get an error when trying to launch via GUI.
@noib3 Glad to hear that : )
macOS version: macOS Catalina 10.15.7 output of
csrutil status
:System Integrity Protection status: disabled.
I tried to follow the installation instructions:
Odourless.app
to/Applications
.But if I try to open it, either via Spotlight or by clicking the icon through Finder, I get the error
Installation Check .. You must install this application under /Appplications
, even though it already is under/Applications
!I then tried manually installing it with this bash script
which runs without errors. After rebooting, if I manually launch Odourless with
I can see that the daemon is installed and running
However Odourless doesn't seem to work, Finder still created
.DS_Store
files, as you can see in this gif