Skip to content
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

Mono/.Net Core/Linux Support #18

Open
lluchs opened this issue Jan 28, 2016 · 67 comments
Open

Mono/.Net Core/Linux Support #18

lluchs opened this issue Jan 28, 2016 · 67 comments

Comments

@lluchs
Copy link

lluchs commented Jan 28, 2016

It would be awesome if Mono could be supported as well. I had to fix an image reference and remove OS and .NET restrictions to get a working .plgx file (see this branch), but the compilation by KeePass fails. I don't really know anything about C# and .NET, so I have no clue how to fix this.

Here's the compiler error given when launching KeePass.exe --debug:

/run/user/1000/KeePass/1A7750E303E428449240070F8B2EA5B3/Forms/CloudDriveFilePicker.cs(260,30): error CS0012: The type `System.Runtime.CompilerServices.ICriticalNotifyCompletion' is defined in an assembly that is not referenced. Consider adding a reference to assembly `System.Threading.Tasks, Version=1.5.11.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
/home/lukas/.local/share/KeePass/PluginCache/f6XeL2e3cU2w4sMBayhL/Microsoft.Threading.Tasks.dll (Location of the symbol related to previous error)
/run/user/1000/KeePass/1A7750E303E428449240070F8B2EA5B3/Forms/CloudDriveFilePicker.cs(260,30): error CS0012: The type `System.Runtime.CompilerServices.INotifyCompletion' is defined in an assembly that is not referenced. Consider adding a reference to assembly `System.Threading.Tasks, Version=1.5.11.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
/home/lukas/.local/share/KeePass/PluginCache/f6XeL2e3cU2w4sMBayhL/Microsoft.Threading.Tasks.dll (Location of the symbol related to previous error)
/run/user/1000/KeePass/1A7750E303E428449240070F8B2EA5B3/Forms/CloudDriveFilePicker.cs(260,30): error CS0012: The type `System.Threading.Tasks.Task' is defined in an assembly that is not referenced. Consider adding a reference to assembly `System.Threading.Tasks, Version=1.5.11.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
/home/lukas/.local/share/KeePass/PluginCache/f6XeL2e3cU2w4sMBayhL/Microsoft.Threading.Tasks.dll (Location of the symbol related to previous error)
@Kyrodan
Copy link
Owner

Kyrodan commented Jan 28, 2016

I never used Mono, so I have to dig deeper into it first. I'm not sure whether this could be achieved beacuse some third party libraries may not be Mono compatible. I also highly use .Net 4.5 Async/Await.

Maybe someone can help out?

@EnochPrime
Copy link

I believe the issue may be that the CSharpCodeProvider object used in KeePass to compile the plgx files does not reference any dlls by default. Therefore if it is not referenced in the csproj file it can't find the dll to compile and thus the errors you received. Although, I would think the same problem would exist on Windows as well.

I tried adding a reference to System.Threading.Tasks in the project but that caused the compiling to fail because xbuild automatically includes a reference to that dll.

@Kyrodan
Copy link
Owner

Kyrodan commented Feb 29, 2016

@jdm12989: I saw your fork and your ongoing development in mono/linux support. Many thanks for that.

Are you willing to complete this task and create a pull request for that? Or is your goal to only create your "private" copy (which is also ok for me)?

@PhoneixS
Copy link

Yes, all Linux user will be very pleased if you complete and share it!

@ffflorian
Copy link

+1 for Linux support

@agigante80
Copy link

+1 for Linux support!
...let me know if you need someone to test it...

@pontikis
Copy link

pontikis commented Jul 4, 2016

+1 for Linux support

@jawilson
Copy link

jawilson commented Aug 1, 2016

+1 for Linux support, I'd imagine this would work under Mac OS as well since we're talking mono. If I have time coming up, I'll start looking at making a PR as well.

@shakahl
Copy link

shakahl commented Aug 8, 2016

+1

@JuanPotato
Copy link

Please +1

@EnochPrime
Copy link

If anyone is familiar with mono, help would be appreciated. I have the plugin running on Linux Mint, but not when it is compiled to a plgx.

@JuanPotato
Copy link

I'm not familiar with mono at all, but I'm an adequate search engine user if I could be of use.

@Kyrodan
Copy link
Owner

Kyrodan commented Aug 26, 2016

Hi @jdm12989,

the upcoming release 1.3.0 will be a huge milestone. In it I have changed some things to be better prepared for mono support. Maybe we can work together on mono support after that?

Regards,
Daniel

@haudren
Copy link

haudren commented Sep 2, 2016

Hi everyone,

I wanted to use KeeAnywhere on Linux, so although I am a total newbie to the KeePass and C# in general, I tried to use it.

Good news: KeeAnywhere 0.13.0 builds on Mono out of the box ! Bad news: I can't get to be loaded by KeePass 2.34, it keeps telling me that I need a "newer .NET framework", although I am using Mono 4.4.2 which is compatible with .NET 4.5/4.6.

@Kyrodan
Copy link
Owner

Kyrodan commented Sep 2, 2016

@haudren,

at first: KeeAnywhere compiles on Linux but currently does not work out of the box (because there is some Windows specific code in it). See @jdm12989's fork of KeeAnywhere. I'm trying to pull these changes in the near future.

Comin back to your problem:
What kind of "distribution" are you trying? PLGX or DLL?
Please check, whether KeePass.exe.config is present. If not, please copy it from the original distribution. It contains a section which makes .Net 4 "available" in this .Net 2 application:

<configuration>
...
    <startup>
        <supportedRuntime version="v4.0" />
        <supportedRuntime version="v2.0.50727" />
    </startup>
...
</configuration>

Regards,
Daniel

@haudren
Copy link

haudren commented Sep 2, 2016

Thanks for your advice ! It doesn't really solve the problem though, but I merged the most recent version of KeeAnywhere with @jdm12989's linux branch, and it seems that now:

  • KeeAnywhere builds
  • I am able to load the plugin, open its settings and so on...

However, I can't seem to be able to add an account for sync: there is no "Add..." button. See the screenshot below:
keeanywhere_noadd
I'll try to investigate further later...

@Kyrodan
Copy link
Owner

Kyrodan commented Sep 2, 2016

It seems the Forms/SettingsForm does not resize it's content correctly. Maybe it has to do with the anchors I set for several controls (like Top, Left, Bottom, Right for the ListView control). Try switching it to something static - maybe then the "hidden" or "dislocated" controls become visible.

@haudren
Copy link

haudren commented Sep 2, 2016

Thanks, I moved the controls around and they now appear! But now, whenever I click on "Add... -> Google Drive", the application crashes with:

libgluezilla not found. To have webbrowser support, you need libgluezilla installed

Followed by a NullReferenceException. This does look like a Ubuntu-specific problem, maybe @jdm12989 can help.

@ronki2304
Copy link

Hello everyone,

On Arhclinux, I have got this error
screenshot from 2017-01-31 21-10-44

I have checked the keepass.exe.config, I have the right .Net version.
What did you do to pass this check ?

@Kyrodan
Copy link
Owner

Kyrodan commented Feb 1, 2017

@ronki2304
Just to make clear: my original distribution of KeeAnywhere currently does not support Mono. You need to use a fork of e.g. @jdm12989 and compile it by yourself. But as far as I see he doesn't use the latest code (Version 1.3.1).

@stephenmcgruer
Copy link

Not the most useful update, but I spent some time looking at running KeeAnywhere this evening. The largest issue appears to be embedding the browser (for the various oauth options):

  1. Mono's WinForms.WebBrowser support is very poor; it expects libgluezilla to be available, but Mozilla deprecated that a long time ago. It's no longer available in distro I'm aware of, and trying to build it did not work :(

  2. The most popular alternative is CefSharp, but this sadly doesn't support Mono (Is mono supported? cefsharp/CefSharp#1450).

  3. CefGlue also gave up on Mono support (https://bitbucket.org/xilium/xilium.cefglue/issues/108/linux-support).

The remaining choices I'm aware of would be to either interact with the CEF APIs directly (supposedly not that difficult, but a lot messier than the current setup), or try to use chromiumfx which reportedly does still support Mono... in theory (https://bitbucket.org/chromiumfx/chromiumfx/issues/9/mono-support).

Very surprised to find it's so difficult to host a web-browser in mono!

@jdm12989 - a long time ago now, but did you come across this issue in your fork? I was unable to get your fork to build anymore, so wasn't able to determine for myself.

@stephenmcgruer
Copy link

I believe I came up with a more feasible approach for this for Mono (Unix). Instead of trying to embed a browser, the application could instead host a simple web server, then launch the system browser (via System.Diagnostics.Process.Start(url)), and utilitze the redirect_url parameter in OAuth2 (https://developers.google.com/identity/protocols/OAuth2InstalledApp#request-parameter-redirect_uri) to deliver the result to the process via the web server. It is a slightly more complicated flow (for the user and for the code), but avoids the need to figure out browser hosting in Mono (Unix).

This should definitely work for Google OAuth2 - whether the other providers have a similar mechanism I don't yet know.

I plan to start looking at this personally over the next few weeks in my spare time; if it turns out to be sane I will ultimately aim to contribute something back - but no promises yet! :)

@EnochPrime
Copy link

@stephenmcgruer I have not run into this as I have only worked on getting it running with Google drive which for me at least opens up Chrome vs the embedded browser.

@Kyrodan
Copy link
Owner

Kyrodan commented Apr 27, 2017

Hi @stephenmcgruer ,

using system's default browser works for some of the providers but not for all. The problems are mainly in issues, how providers handle authorization (callback) URL:

  • some providers require SSL - even for localhost
  • many providers only support a fixed port - which in case of localhost may result in already blocked TCP ports. I would prefer a range of ports to try listening on.
  • some providers only support exactly one callback URL
  • OAuth2 describes two kind of authorization grant flows: authorization token and implicit. Especially for Desktop-Applications some providers require the first, some the latter (with different validity of refresh tokens). This also leads to different URL's (token as parameter vs. token as Hash-Fragment - the latter is local/browser only and not tranferred to server).

This all leads to the requirement to use an internal browser to have the best user experience. There are some options in which the authorization may take place in default browser and the user must copy and paste authorization token/code to a an input field in KeeAnywhere.

But I'm looking forward for solution :-)

@stephenmcgruer
Copy link

stephenmcgruer commented Apr 27, 2017

Ah, I was not aware of such requirements from OAuth2 providers, thank you for bringing it to my attention. My knowledge is mainly from the Google OAuth2 implementation, which actually specifies that using a local loopback server is preferred over the deprecated programmatic extraction or copy/paste[0]!

I will have a look through the various provider's docs and see what the situation is for each, then loop back (pun entirely intended) here for further discussion :).

I was successful last night in hacking together a local webserver solution for Google Drive on Linux (Mono). It was remarkably easy - a few small patches for general Mono support, a replacement class for OAuth2Form, and changing the redirect URL to a localhost one.

[0]: https://developers.google.com/identity/protocols/OAuth2InstalledApp#creatingcred

@fazlerabbi37
Copy link

@Kyrodan any progress on this? TIA

@Kyrodan
Copy link
Owner

Kyrodan commented Sep 1, 2019 via email

@joschkopf
Copy link

Hello @Kyrodan ,
sorry to ask stupid questions... I made the changes as per the "mono" branch. That way I could compile on mono and I got rid of the "newer .NET framework required" error message. However, I'm stuck with the "The following plugin is incompatible..." error. I'm running KeePass 2.42.1, but I also tried 2.40. I tried both the "plgx" and the "dll" format. What am I missing?
Thanks!

@Kyrodan Kyrodan pinned this issue Jan 9, 2020
@adriano-pinaffo
Copy link

adriano-pinaffo commented Mar 16, 2020

I believe there are no news about this yet.
I found a (very bad) workaround to open gdrive stored keepass database in Linux. I'm using KDE Plasma and kio-gdrive. After setting up Online Accounts to access my Google Drive (1st time only) I created a .desktop file to my bash script which runs "kioclient5 exec gdrive:/account/path/to/my/database.kdbx". KDE will open it in keepass (running with mono). It does work but:

  1. every time you open a file it in fact downloads the file locally then open it
  2. every time you save a file it gives you the option to upload it back to gdrive
  3. every uploaded file is a new file, so you would end-up with the same file multiple times in gdrive (it is easy to spot which one is the latest one, though)

To circumvent 3) I'm preparing my bash to use kioclient move all the files but the latest one to an .old folder in gdrive.

Anyways, I still hope to see someday KeeAnywhere working with mono.

Cheers

@vossim
Copy link

vossim commented Mar 28, 2020

I wasn't able to find a maintained solution for in-application web browser support in Mono.
A solution that does seem viable is authenticating through an external browser, as supported by google.
I've created a PR (#216), which allows for non-windows users to login in this way. It only supports google drive (as it's the only platform I actually use).

@minecraftchest1
Copy link

For embedding a web browser in Mono, this might be useful.

@Kyrodan
Copy link
Owner

Kyrodan commented Feb 12, 2021

I'm in progress of abandoning the internal browser and improving linux support.

For further v2.0.0-Beta-Tests please move on to #252.

@minecraftchest1
Copy link

minecraftchest1 commented Feb 12, 2021 via email

@Kyrodan
Copy link
Owner

Kyrodan commented May 18, 2021

I released v2.0.0 today. During abandoning the WebView I did some changes to improve Mono/Linux-Support.
I could not test it by myself but maybe someone from this issue would do and report back?

@vossim
Copy link

vossim commented May 18, 2021

Ah, I see the 2.0.0 is now in the master repo, when I find some time, I'll see if I can get it to work

@zapotah
Copy link

zapotah commented May 18, 2021

Managed to make the plugin run on the 2.48.1 portable with mono 6.12, however, the buttons for adding and operating on storages are missing.
keeanywhere

@electrofloat
Copy link

I have mono-devel installed on Ubuntu Bionic:
ii mono-devel 6.12.0.122-0xamarin1+ubuntu1

but I get this when I start KeePass portable:
Screenshot from 2021-05-18 17-38-35

@zapotah
Copy link

zapotah commented May 18, 2021

You need the zip archive and unzip into the plugins folder, that however has that issue that i showed there

@zapotah
Copy link

zapotah commented May 24, 2021

@Kyrodan is there something in specific i could help with debugging about getting the buttons to appear under mono? I feel like this is propably something very minor and pretty much the last thing needed to having this working.

@siodor
Copy link

siodor commented Jun 10, 2021

Unfortunately, for me KeeAnywhere 2.0.3 also doesn't work.

I'm on up-to-date (as of today) Gentoo with

  • dev-lang/mono-6.12.0.122 (this is the latest version for Gentoo)
  • app-admin/keepass-2.48.1

When I use the .plgx file I'm also getting:
Screenshot_20210610_110255

When I use the .zip file I'm getting:
Screenshot_20210610_110450

When I run KeePass from console with the --debug parameter, for the .plgx there's no output but for the .zip file I'm getting the following:
Screenshot_20210610_113704

According to https://keepass.info/help/v2_dev/plg_index.html there should be an output to a temporary file, but I can't find it or maybe it never gets created?

What can I do to help debug this further?

@minecraftchest1
Copy link

I wonder if using .net core would make a difference?

@madushan1000
Copy link

On ubuntu 21.04 with the latest mono preview version(currently 6.12.0.147) from the mono website, the plugin works. But the buttons to add/remove accounts are not visible. They are out of the form for some reason. If I do the bellow patch, I can see them on the form.

diff --git a/KeeAnywhere/Forms/SettingsForm.Designer.cs b/KeeAnywhere/Forms/SettingsForm.Designer.cs
index 59647e9..b6e3c90 100644
--- a/KeeAnywhere/Forms/SettingsForm.Designer.cs
+++ b/KeeAnywhere/Forms/SettingsForm.Designer.cs
@@ -132,7 +132,7 @@
             // m_btnAccountCheck
             // 
             this.m_btnAccountCheck.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
-            this.m_btnAccountCheck.Location = new System.Drawing.Point(490, 96);
+            this.m_btnAccountCheck.Location = new System.Drawing.Point(100, 96);
             this.m_btnAccountCheck.Name = "m_btnAccountCheck";
             this.m_btnAccountCheck.Size = new System.Drawing.Size(75, 23);
             this.m_btnAccountCheck.TabIndex = 12;
@@ -143,7 +143,7 @@
             // m_btnAccountAdd
             // 
             this.m_btnAccountAdd.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
-            this.m_btnAccountAdd.Location = new System.Drawing.Point(490, 38);
+            this.m_btnAccountAdd.Location = new System.Drawing.Point(100, 38);
             this.m_btnAccountAdd.Menu = this.m_mnuAdd;
             this.m_btnAccountAdd.Name = "m_btnAccountAdd";
             this.m_btnAccountAdd.Size = new System.Drawing.Size(75, 23);
@@ -159,7 +159,7 @@
             // m_btnAccountRemove
             // 
             this.m_btnAccountRemove.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
-            this.m_btnAccountRemove.Location = new System.Drawing.Point(490, 67);
+            this.m_btnAccountRemove.Location = new System.Drawing.Point(100, 67);
             this.m_btnAccountRemove.Name = "m_btnAccountRemove";
             this.m_btnAccountRemove.Size = new System.Drawing.Size(75, 23);
             this.m_btnAccountRemove.TabIndex = 10;
@@ -178,7 +178,7 @@
             this.m_lvAccounts.Location = new System.Drawing.Point(7, 38);
             this.m_lvAccounts.MultiSelect = false;
             this.m_lvAccounts.Name = "m_lvAccounts";
-            this.m_lvAccounts.Size = new System.Drawing.Size(476, 217);
+            this.m_lvAccounts.Size = new System.Drawing.Size(100, 100);
             this.m_lvAccounts.SmallImageList = this.m_imlProviderIcons;
             this.m_lvAccounts.Sorting = System.Windows.Forms.SortOrder.Ascending;
             this.m_lvAccounts.TabIndex = 9;

I can even build the plugin under mono if I remove the dropbox dependency, patch bellow.

diff --git a/KeeAnywhere/KeeAnywhere.csproj b/KeeAnywhere/KeeAnywhere.csproj
index e27527e..639dd63 100644
--- a/KeeAnywhere/KeeAnywhere.csproj
+++ b/KeeAnywhere/KeeAnywhere.csproj
@@ -362,9 +362,9 @@
     <Compile Include="StorageProviders\Box\BoxHttpRequestHandler.cs" />
     <Compile Include="StorageProviders\Box\BoxStorageConfigurator.cs" />
     <Compile Include="StorageProviders\Box\BoxStorageProvider.cs" />
-    <Compile Include="StorageProviders\Dropbox\DropboxHelper.cs" />
+    <!--<Compile Include="StorageProviders\Dropbox\DropboxHelper.cs" />
     <Compile Include="StorageProviders\Dropbox\DropboxStorageConfigurator.cs" />
-    <Compile Include="StorageProviders\Dropbox\DropboxStorageProvider.cs" />
+    <Compile Include="StorageProviders\Dropbox\DropboxStorageProvider.cs" />-->
     <Compile Include="StorageProviders\ProxyProvider.cs" />
     <Compile Include="StorageProviders\GoogleDrive\GoogleDriveHelper.cs" />
     <Compile Include="StorageProviders\GoogleDrive\GoogleDriveHttpClientFactory.cs" />
diff --git a/KeeAnywhere/StorageProviders/StorageRegistry.cs b/KeeAnywhere/StorageProviders/StorageRegistry.cs
index b23d9f0..bf0839d 100644
--- a/KeeAnywhere/StorageProviders/StorageRegistry.cs
+++ b/KeeAnywhere/StorageProviders/StorageRegistry.cs
@@ -3,7 +3,7 @@ using System.Linq;
 using KeeAnywhere.StorageProviders.AmazonS3;
 using KeeAnywhere.StorageProviders.Azure;
 using KeeAnywhere.StorageProviders.Box;
-using KeeAnywhere.StorageProviders.Dropbox;
+//using KeeAnywhere.StorageProviders.Dropbox;
 using KeeAnywhere.StorageProviders.GoogleDrive;
 using KeeAnywhere.StorageProviders.HiDrive;
 using KeeAnywhere.StorageProviders.HubiC;
@@ -24,8 +24,8 @@ namespace KeeAnywhere.StorageProviders
             d.Add(new StorageDescriptor(StorageType.AzureBlob, "Azure Blob Storage", "azureblob", account => new AzureBlobStorageProvider(account), () => new AzureStorageConfigurator(StorageType.AzureBlob), PluginResources.Azure_16x16));
             d.Add(new StorageDescriptor(StorageType.AzureFile, "Azure File Storage", "azurefile", account => new AzureFileStorageProvider(account), () => new AzureStorageConfigurator(StorageType.AzureFile), PluginResources.Azure_16x16));
             if (!isUnix) d.Add(new StorageDescriptor(StorageType.Box, "Box", "box", account => new BoxStorageProvider(account), () => new BoxStorageConfigurator(), PluginResources.Box_16x16));
-            d.Add(new StorageDescriptor(StorageType.Dropbox, "Dropbox", "dropbox", account => new DropboxStorageProvider(account), () => new DropboxStorageConfigurator(false), PluginResources.Dropbox_16x16));
-            d.Add(new StorageDescriptor(StorageType.DropboxRestricted, "Dropbox-Restricted", "dropbox-r", account => new DropboxStorageProvider(account), () => new DropboxStorageConfigurator(true), PluginResources.Dropbox_16x16));
+            //d.Add(new StorageDescriptor(StorageType.Dropbox, "Dropbox", "dropbox", account => new DropboxStorageProvider(account), () => new DropboxStorageConfigurator(false), PluginResources.Dropbox_16x16));
+            //d.Add(new StorageDescriptor(StorageType.DropboxRestricted, "Dropbox-Restricted", "dropbox-r", account => new DropboxStorageProvider(account), () => new DropboxStorageConfigurator(true), PluginResources.Dropbox_16x16));
             d.Add(new StorageDescriptor(StorageType.GoogleDrive, "Google Drive", "gdrive", account => new GoogleDriveStorageProvider(account), () => new GoogleDriveStorageConfigurator(), PluginResources.GoogleDrive_16x16));
             d.Add(new StorageDescriptor(StorageType.HiDrive, "HiDrive", "hidrive", account => new HiDriveStorageProvider(account), () => new HiDriveStorageConfigurator(), PluginResources.HiDrive_16x16));
             if (!isUnix) d.Add(new StorageDescriptor(StorageType.HubiC, "hubiC", "hubic", account => new HubiCStorageProvider(account), () => new HubiCStorageConfigurator(), PluginResources.HubiC_16x16));

@MaurizioCasciano
Copy link

Is it possible to add a Google Drive account manually within a config file?
How?

@katonagl
Copy link

katonagl commented Nov 7, 2022

I am on openSUSE Tumbleweed with mono version 6.12.0.122. Unfortunately it still refuses to compile, it ask for newer .NET version. Other plugins just work fine. Do you have some workaround to make it work?

@midenok
Copy link

midenok commented Oct 12, 2023

Another solution would be to setup rclone. It has an option for cached mount. Initial setup of google drive is here.

@Kyrodan
Copy link
Owner

Kyrodan commented Jun 24, 2024

Is there someone out there to give it a try again:
In latest master-branch I did some changes:

  • Using .Net 4.8 now
  • Upgraded all dependencies to latest version
  • Completely using System Browser for authentication

I noticed that CodeQL is using Mono for compiling this project and it does not fail.

@hockey6611
Copy link

Is there someone out there to give it a try again: In latest master-branch I did some changes:

* Using .Net 4.8 now

* Upgraded all dependencies to latest version

* Completely using System Browser for authentication

I noticed that CodeQL is using Mono for compiling this project and it does not fail.

I attempted to run the plgx from this build. I still have an error upon keepass start up.
image

Thank you for working on this! I use the extension on Window, and love it. Would really like to use it on Linux as well as I am trying to transition to Linux.

System:

  • Linux mint: Linux Mint 21.3 Cinnamon (relatively fresh install)
  • keepass 2.57
  • mono-complete 6.12.0

@katonagl
Copy link

Is there someone out there to give it a try again: In latest master-branch I did some changes:

Do you mean testing with latest build? If not, how can I create a plgx file from master?
The latest build (2.1.0) does not work with mono.

@vossim
Copy link

vossim commented Aug 26, 2024

Is there someone out there to give it a try again: In latest master-branch I did some changes:

  • Using .Net 4.8 now
  • Upgraded all dependencies to latest version
  • Completely using System Browser for authentication

I noticed that CodeQL is using Mono for compiling this project and it does not fail.

I was able to get the plugin to work by adjusting the csproj file. I had to add a HintPath for "netstandard", and adjust the one for "System.Threading.Tasks".

Had to add oauth2 keys for Google of course, now it work. Still a few UI issues, but that didn't impact the functionality.

@vossim
Copy link

vossim commented Sep 17, 2024

I've created a binary which works for me (google drive only): https://github.com/vossim/KeeAnywhere/releases/tag/2.1.0-linux

And a PR here: #434

@RedCommander735
Copy link

@vossim Your release does not work for me, if I have it installed keepass keeps crashing (2.57, ubuntu-24.04)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests