-
-
Notifications
You must be signed in to change notification settings - Fork 55
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
FreeBSD: use of undeclared crate or module secret_service
#148
Comments
Hi @soywod, it looks like the Thinking about this, I suppose there might be users on FreeBSD who are bringing their own keystore and thus need this crate to compile without installing the secret service. We could allow disabling the secret service on FreeBSD by using the mock keystore as the default. But I'd like to hear from you about whether your user needs this (because they are, in fact, bringing their own keystore) or whether they simply need to install the secret service on their machine (e.g., by running |
Hi @soywod, I'm going to close this as resolved. Happy to reopen it if in fact your users have written their own credential store. |
Thank you for your reply and sorry for the late mine.
My users are not necessarily developers, so I would bet on the second option. But I have a question related to your Cargo.toml: why is |
Hi Clément, to answer your question, I need to draw a careful distinction between the Currently, the Because the So, as I see it, you have three options for
I hope you find this answer useful! Please get back to me here with any further questions. |
So I'm reopening this because #153 has made me realize that people may really want to compile this crate with no underlying platform support on all platforms. |
This fixes hwchen#153 by making all platform dependencies be features and including them as default features, so now you can suppress building all platform dependencies by suppressing default features. This also fixes hwchen#148 by having the code check to see if there is platform support and, if not, using the mock keystore as the default. While this change is not fully backward compatible for people who were suppressing default features on macOS, iOS, Win, or FreeBSD, doing so was undefined behavior on those platforms and so changing it does not break the semantics of the API.
This fixes hwchen#153 by making all platform dependencies be features and including them as default features, so now you can suppress building all platform dependencies by suppressing default features. This also fixes hwchen#148 by having the code check to see if there is platform support and, if not, using the mock keystore as the default. While this change is not fully backward compatible for people who were suppressing default features on macOS, iOS, Win, or FreeBSD, doing so was undefined behavior on those platforms and so changing it does not break the semantics of the API.
Version 2.2 (just released) fixes this. If you don't want to use secret service on FreeBSD, you can build with no default features. At that point you will be using the mock keystore by default. |
Someone reported the following issue on my project:
Your crate is used like this in my project:
I read #36, could it be related?
The text was updated successfully, but these errors were encountered: