Page 4 of 4

Re: Fine Offset + Linux Mint

Posted: Thu 28 May 2015 10:07 am
by Buford T. Justice
steve wrote:I understand perfectly well that there is an issue. Please tell me what I can do about it.
I do not use the Chrome web browser, but from what I have read it had a similar issue wanting libudev.so.0 when the system instead used libudev.so.1. I think the fix was Chrome updated its installer to look for libudev.so.0 and, if it didn't find it, it created the libudev.so.0 link file to libudev.so.1.3.5 but it created the link within its own Chrome directory for safety instead of putting it in the Linux /lib folder. Could Cumulus MX do something like that where when it is first ran, it verifies libudev.so.0 exists and, if it doesn't, it creates a libudev.so.0 link within the Cumulus MX folder and works?

http://askubuntu.com/questions/369310/h ... tart-again
At least for Chrome versions form 28 to 37, the Chrome binary can use whichever of libudev.so.0 or libudev.so.1 is present on the system. With the fix to Chromium/Chrome Issue 226002 (which went into the unstable channel in April 2013), the installer determines which one to use. The binary references libudev.so.0; the installer creates a symbolic link from /opt/google/chrome/libudev.so.0 to the libudev.so.1 on the system if libudev.so.0 is not found.

Note that it would be a bad idea to create one in /usr/lib. Major version numbers in libraries change when the newer version is incompatible. Creating this symbolic link works well for Chrome because it only uses features that are compatible between version 0 and version 1. Other applications might crash or produce corrupt data if you force them to run with the wrong version.

The method used by the Chrome package works well under most circumstances, but it's still a dirty hack, and it has a limitation. If the libudev0 package is uninstalled after Chrome is installed, which is likely to happen when you upgrade Ubuntu, then Chrome will still be set up to use libudev.so.0 but the file won't be available anymore. To fix this, cause the installation script to run again, and this time detect that libudev.so.0 is not available so it should create the symbolic link to use libudev.so.1 instead. You can re-run the installation script by running dpkg-reconfigure google-chrome-stable as root.

Re: Fine Offset + Linux Mint

Posted: Thu 28 May 2015 10:24 am
by steve
I'm confused now. Creating the link is bad, but you are proposing that the solution is that MX creates the link? How is that different from you creating the link yourself?

I am reluctant to have code in Cumulus which does things to the system - this has always been the case. This is a 'defensive' strategy to avoid increasing the already large amount of time I spend on support. And in MX I want to keep the amount of platform-specific code to a minimum, as otherwise I end up effectively having multiple versions of the program, avoiding which was the whole point of choosing .net/mono in the first place.

Re: Fine Offset + Linux Mint

Posted: Thu 28 May 2015 6:12 pm
by Buford T. Justice
Having the link file in the /lib folder is not wise according to these warnings. Having it in a program's folder appears to be fine as long as the program supports having it there like Chrome did.

Re: Fine Offset + Linux Mint

Posted: Thu 28 May 2015 6:25 pm
by steve
That seems reasonable to me. Have you tried it?

Re: Fine Offset + Linux Mint & Ubuntu Derivatives

Posted: Thu 28 May 2015 7:05 pm
by Buford T. Justice
2021 EDIT: This may no longer be needed for most modern GNU/Linux versions. Ubuntu 20.04 versions work without doing this...

It works there! I figured Cumulus MX would have to have some sort of built-in support for doing that. See steve, you are a Linux programmer, lol!

OK everyone who has read to this point. If you are using a Linux distro which does not have libudev.so.0 here is what to do (using Ubuntu 14.04.2 LTS as the example):

64-bit
1) Open the /lib folder as administrator by right-clicking on it.
2) Open the /lib/x86_64-linux-gnu folder.
3) Right-click on libudev.so.1.3.5 then left-click on MAKE LINK. This will make a file called Link to libudev.so.1.3.5.
4) Right-click on Link to libudev.so.1.3.5 and then left-click on CUT. DO NOT COPY BUT CUT!
5) Browse to the Cumulus MX folder where CumulusMX.exe is.
6) Paste Link to libudev.so.1.3.5 there.
7) Right-click on Link to libudev.so.1.3.5 and then left-click on RENAME.
8) Change the name to libudev.so.0
9) Open Cumulus MX with Mono and it should work fine.

32-bit
1) Open the /lib folder as administrator by right-clicking on it.
2) Open the /lib/i386-linux-gnu folder.
3) Right-click on libudev.so.1.3.5 then left-click on MAKE LINK. This will make a file called Link to libudev.so.1.3.5.
4) Right-click on Link to libudev.so.1.3.5 and then left-click on CUT. DO NOT COPY BUT CUT!
5) Browse to the Cumulus MX folder where CumulusMX.exe is.
6) Paste Link to libudev.so.1.3.5 there.
7) Right-click on Link to libudev.so.1.3.5 and then left-click on RENAME.
8) Change the name to libudev.so.0
9) Open Cumulus MX with Mono and it should work fine.

FOR YOUR SAFETY
If you did the earlier libudev.so.0 fix by creating the link in /lib, check both /lib/x86_64-linux-gnu AND /lib/i386-linux-gnu and delete libudev.so.0 if you created it to make Cumulus MX work.

Re: Fine Offset + Linux Mint & Other Ubuntu Versions

Posted: Sat 06 Jun 2015 2:09 am
by Buford T. Justice
https://cumulus.hosiene.co.uk/viewtopic.p ... 08#p101008
On Linux you will need library libudev.so.0 which may not be installed by default. Installing package libudev0 may resolve this. There may be issues if you are using a 64-bit version of Linux. I'm not sure what the resolution is at the moment, if this is the case.
It might be worth using the fix I came up with though 32-bit probably has the same problem especially Ubuntu 14.04.2 LTS and newer.

https://cumulus.hosiene.co.uk/viewtopic.p ... 13#p107913