On one of our servers (a virtual server with Ubuntu 10.04) I do have ibicu42 available. But I guess that is a 64bit version and installing 32bit fails.
[quote]root@lvps176-28-22-139:~# apt-cache search libicu
libicu4j-java - Library for unicode support and internalisation
libicu-dev - Entwicklungsdateien für Internationale Komponenten für Unicode
libicu42 - Internationale Bestandteile für Unicode
libicu42-dbg - Internationale Bestandteile für Unicode
root@lvps176-28-22-139:~# sudo apt-get install libicu42:i386
Paketlisten werden gelesen… Fertig
Abhängigkeitsbaum wird aufgebaut
Status-Informationen einlesen… Fertig
E: Paket libicu42:i386 konnte nicht gefunden werden
root@lvps176-28-22-139:~# [/quote]
So, whatever webapp I rebuild with 2015r2, won’t run any longer on that machine.
Now I really wonder: who has asked for getting “smaller executables” for Linux webapps? When I see how many threads on icu have opened now and how many people have problems now to get there webapps up and running, then I wonder: WHY THE HECK ARE YOU CHANGING RUNNING SYSTEMS?!
Can you not just rollback this change and do it as it was before? Are there not enough 32bit libraries install hassles on Linux?!
By using the system supported library instead of shipping our own version, we don’t have to include a copy with every copy of every app- and any security or other updates are managed by the system itself. It’s the proper way to do it for system provided libraries.
Ubuntu 10.04 is older and does not have the :i386 add on for 32 bit packages. But assuming you have ia32-libs installed on that machine, it should be as easy as:
[quote=181269:@Travis Hill]By using the system supported library instead of shipping our own version, we don’t have to include a copy with every copy of every app- and any security or other updates are managed by the system itself. It’s the proper way to do it for system provided libraries.
Ubuntu 10.04 is older and does not have the :i386 add on for 32 bit packages. But assuming you have ia32-libs installed on that machine, it should be as easy as:
sudo apt-get install lib32icu42[/quote]
Thanks, this install seems to work. I still have to test the webapps…
However, I do not agree when you say that the new way to do it would be “the propper” way.
Why?
Space is not an issue and very cheap today
Upload speed is not an issue nowadays
Installation of libraries on various Linux distros and versions IS A BIG issue
So: keep it simple. And i mean simple from the perspective of those who must install and maintain webapps, and not from your own perspective.
I think this decision Xojo made is complicating things and is one more step away from easy distribution of webapps.
Well, if I build a webapp with Xojo 2014r3.2 then it runs well on that vServer with Ubuntu 10.04.
If I build the same webapp with Xojo 2015r2 then it will just fail. I have not yet found anything in the log files, related to that webapp, which would help me to find out why it fails.
I installed lib32icu42 as Travis wrote above and this installed fine. When I run it again, then it says this:
[quote]sudo apt-get install lib32icu42
Paketlisten werden gelesen… Fertig
Abhngigkeitsbaum wird aufgebaut
Status-Informationen einlesen… Fertig
lib32icu42 ist schon die neueste Version.
0 aktualisiert, 0 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.[/quote]
So now I will have to find out, why the very same webapp is no longer running when built with the latest Xojo.
[quote=181272:@Oliver Osswald]I installed lib32icu42 as Travis wrote above and this installed fine. When I run it again, then it says this:
== clip ==
So now I will have to find out, why the very same webapp is no longer running when built with the latest Xojo.[/quote]
If the compiler suite is installed (GCC/G++), you can always build your own library and install it.
Oliver, I had already submitted a request to reverse this iculib decision (<https://xojo.com/issue/38754>) but the case has been closed. Less work for Xojo and more work for us! Even a checkbox to include/not include would be nice!
@Oliver Osswald - Travis also closed the static compile request with some invalid assumptions about the way GPL licensing and system updates work :(. I’ve posted counterpoint based on 21 years of delivering both dynamic and statically compiled applications on Linux, but I don’t expect any change from their end…
We’ve commented on other similar requests.
Static linking would mean that we dictate what versions of what compilers plugin authors can use.
They are not a standard file format. They are compiler and version specific formats.
Other cases requesting static linking have also been closed as “won’t implement” for similar reasons.
See 2852.
See https://msdn.microsoft.com/en-us/library/bb531344.aspx where MS says To avoid run-time errors that are difficult to detect and diagnose, we recommend that you never statically link to binaries that were compiled by using different versions of the compiler.
i try everythink and still have no instalation for the libicu:
condor1212:~# sudo apt-get install libicu48:i386
Reading package lists… Done
Building dependency tree
Reading state information… Done
Package libicu48:i386 is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
E: Package ‘libicu48:i386’ has no installation candidate
condor1212:~# sudo apt-get install lib32icu42
Reading package lists… Done
Building dependency tree
Reading state information… Done
E: Unable to locate package lib32icu42
condor1212:~#
In the meantime, I found Philip Guo’s Ph.D presentation on CDE - Philip Guo’s CDE presentation. CDE will create a self-contained package that you can copy to any Linux x86 system and execute without concern for external library requirements. I’m running some tests on Xojo code and will report back.
@Norman Palardy - those comments assume that you’re (the developer) not in control of things. While this issue MAY - and that is emphasized on purpose - affect Windows builds, the issue doesn’t exist on Linux - otherwise, In order for us to ship our BRU products for Linux, we’d have to build with every possible version of GCC that has ever shipped since we have no idea of what compiler a give shared library was compiled with - we don’t and everything works just fine.
And, MS has a vested interest in keeping you using the latest and greatest version of Visual Studio so we should expect them to make statements like that. I use libraries compiled under VS 6 with VS10 and VS13 all the time with no ill effects; they really get annoyed when apps built with VS 6 still run on Windows 10 tech preview.
I just verified that it’s available in a Ubuntu 12.04 64-bit install. Perhaps try doing a “sudo apt-get update” before the “sudo apt-get install libicu48:i386”