Search Unity

New version of Mono with Unity 4.3 - Any additional details on that?

Discussion in 'General Discussion' started by Stephan-B, Aug 28, 2013.

  1. Dantus

    Dantus

    Joined:
    Oct 21, 2009
    Posts:
    5,667
    You may just google:
    https://www.google.ch/search?q=ios+dynamic+linking

    It is not allowed. That means the only alternative is static linking. Static linking of LGPL code - without an exception clause that allows it - requires the whole code has to be open source. That's why it doesn't work for Unity.

    Edit: KeldorKatarn was faster :)
     
  2. Melku

    Melku

    Joined:
    Dec 24, 2013
    Posts:
    2
    Thanks for the info. I made some more research in between, and saw that indeed the LGPL is problematic with iOS. Dynamic linking is allowed on Android, that's why iOS is a horrible platform ;)

    What I still wonder though, is: how do Apple and Sony do? Safari is based on Webkit, and at least WebCore is LGPL licensed. So they're violating the license. Same with Sony, they also use WebCore on the PS3 and PS4 (see here and here), which are even more closed than an iPhone (at least you can jailbreak an iPhone). Do these companies just pay money to the FSF, aren't they sued?
     
  3. Dantus

    Dantus

    Joined:
    Oct 21, 2009
    Posts:
    5,667
    It is their platform, they can use dynamic linking for their stuff.
     
  4. im

    im

    Joined:
    Jan 17, 2013
    Posts:
    1,408
    unity is not at the mercy of mono

    unity could easily switch desktop version to use latest .net runtime by microsoft

    and can keep old mono for other platforms where microsoft runtime does not exist

    its win win win i think... we get faster .net for development and to deployment on platforms that microsoft .net runs on

    and for other places well there is mono, better than nothing...
     
  5. Murgilod

    Murgilod

    Joined:
    Nov 12, 2013
    Posts:
    10,142
    That's the kind of fragmentation they should be trying to avoid.
     
  6. Eric5h5

    Eric5h5

    Volunteer Moderator Moderator

    Joined:
    Jul 19, 2006
    Posts:
    32,401
    They do for Windows Store stuff, and from the topics I've seen, it hasn't been a great experience so far (though they're working on it). Definitely not win win; it would be better if they could have used Mono for everything. The point of Unity is that it's supposed to be fairly easy to switch platforms, not be a big pain.

    --Eric
     
  7. Brainswitch

    Brainswitch

    Joined:
    Apr 24, 2013
    Posts:
    270
    True. The same line of code should preferably do the exact same thing on all platforms.
     
  8. Crystalline

    Crystalline

    Joined:
    Sep 11, 2013
    Posts:
    171
    Its so perfect, got 4.3 open my game project (quite a big one), cool thing wont open anymore. I love it...so much work trashed away, isnt it great? INSTEAD OF RELEASING VERY VERY UNSTABLE VERSIONS BETTER DONT!!!
    Rushed version, killed features, could swim in bugs.
     
  9. Murgilod

    Murgilod

    Joined:
    Nov 12, 2013
    Posts:
    10,142
    Like what?
     
  10. Crystalline

    Crystalline

    Joined:
    Sep 11, 2013
    Posts:
    171
    What like what?
     
  11. tatoforever

    tatoforever

    Joined:
    Apr 16, 2009
    Posts:
    4,368
    Do you have a backup or something?
    Btw, Unity won't trash or delete your project, it will very rarely corrupt the cache (specially when some obscure crashes happens). If that your case, you can force re-import your project again.
     
  12. Crystalline

    Crystalline

    Joined:
    Sep 11, 2013
    Posts:
    171
    And how would I force re inport if as I open any scene or the project itself unity simply crashes..nothing more.
     
  13. Flipbookee

    Flipbookee

    Joined:
    Jun 2, 2012
    Posts:
    2,793
    I'm not an expert but I would first try to delete the Library folder in the root of the project. This is where Unity stores data about all preprocessed files and serves as cache. Probably it got corrupted and needs to be refreshed, which you can simply do by deleting the folder and opening the project again. Unity will reimport all assets, so be patient and wait until it finishes.
     
  14. angrypenguin

    angrypenguin

    Joined:
    Dec 29, 2011
    Posts:
    15,620
    Be careful with just deleting it. There's different places your project can store its meta data (an editor setting), and the Library folder is where some of the options store it. If you delete your meta data you lose connections in the Editor, and that ain't no fun for anybody.
     
  15. Flipbookee

    Flipbookee

    Joined:
    Jun 2, 2012
    Posts:
    2,793
    Uh, I forgot about that! :eek: I guess I should have said "delete the Library folder if your project has the .meta files saved next to the assets inside the Assets folder", right?
     
  16. MrEsquire

    MrEsquire

    Joined:
    Nov 5, 2013
    Posts:
    2,712
    Why no 4.2.2 or older, why 4.0.1?
     
  17. mvduin

    mvduin

    Joined:
    Feb 23, 2014
    Posts:
    1
    Why do people keep repeating this nonsense? The LGPL 2.0 says:
    in more detail, clause 6 states you must make available (emphasis mine):
    In other words, it suffices to offer the source of the LGPL libs ("fork us on github!") and the rest of your app as a single .o file with references to external libs left undefined, so the end-user can link against his own version of the LGPL libs. Note that this does not reveal any more of your program than using dynamic linking would have.
     
  18. Dantus

    Dantus

    Joined:
    Oct 21, 2009
    Posts:
    5,667
    @mvduin, you are right! I checked it too long ago. I remembered that LGPL can't be used in certain restricted environments and confused the cause for it, sorry about that.
    However, it is not possible for Unity to use Mono through static compilation, as this would violate the terms of the LGPL. It doesn't work for consoles and also not for the app store. There is pretty much a consensus about that, with a taste of confusion. I am sure Unity would use static linking already if it was possible and they already paid some lawyers to check that. As I am not a lawyer and as I am not interested in the licensing topic, don't expect me to discuss this further.
     
  19. thxfoo

    thxfoo

    Joined:
    Apr 4, 2014
    Posts:
    515
    I think you did not read the previous post correctly. Those rules (having to release object files) are for the case that you want to statically link.

    If does link statically, otherwise you would not be allowed to deploy to apple app store. If it was dynamically linked all this problems would not exist and the user could just switch the mono implementation (that is the purpose of LGPL, that the user can change the implementation for cluster f#cks like this between UT and mono developers).
     
  20. Dantus

    Dantus

    Joined:
    Oct 21, 2009
    Posts:
    5,667
    LGPL and static linking are a controversial topic on which not even lawyers agree. For that reason most if not all serious companies avoid it. I am not a lawyer that's why I won't spend my time to discuss that.
     
  21. VacuumBreather

    VacuumBreather

    Joined:
    Oct 30, 2013
    Posts:
    68
    And this is exactly why andthing with GPL in the name is anything but 'free' software. Free means take it and do whatever you want with it. Sigh...

    I personally am not even that concerned with stuff like garbage collection. It's language features like async await and tons of stuff in the framework like MEF, PLINQ and other stuff that's missing and that's really a shame.
     
  22. Westerbly

    Westerbly

    Joined:
    Aug 15, 2012
    Posts:
    60
    @KeldorKatarn, that's why I'm a great fan of the MIT license.
     
  23. VacuumBreather

    VacuumBreather

    Joined:
    Oct 30, 2013
    Posts:
    68
    Same here, I use MIT for most of my open source stuff
     
  24. Shedletsky

    Shedletsky

    Joined:
    Apr 21, 2014
    Posts:
    20
    I'm bored by these licensing discussions, but I wish I didn't need to backport the latest lidgren to 3.5 to get it to work in Unity, and I haven't committed to using Unity for my project yet.
     
  25. UnitedMG

    UnitedMG

    Joined:
    Feb 26, 2015
    Posts:
    9
    I'm sorry for bumping this old thread. Could you elabore more on this in regards to Android apps made with Unity? On Android, there are at least two ways to replace Mono with another version:
    1. Obtain APK file, unpack it, replace the Mono binary or binaries, repack it. The APK can't be signed with the same key but that doesn't violate LGPL either, it can be signed with another certificate.
    2. If only the native shared library needs to be replaced, this can be done after APK was installed in the /data/data/com.example.app/lib directory
    It's not easy but definitely doable and the LGPLv3 section 4 (modifications can't be restricted) is not violated.

    Are there any other LGPL requirements that prevents us from replacing Mono on Android?
     
    JaredThirsk likes this.
  26. Dantus

    Dantus

    Joined:
    Oct 21, 2009
    Posts:
    5,667
    This might be interesting for you:
    http://blogs.unity3d.com/2014/05/20/the-future-of-scripting-in-unity/
     
  27. UnitedMG

    UnitedMG

    Joined:
    Feb 26, 2015
    Posts:
    9
    My point was it is possible to upgrade Mono in Unity Android applications. I haven't find anything related in the blog entry. Perhaps I've missed it.

    One day, there will be new .NET runtime but noone knows when it comes. The Mono issue seems to be solvable at least on Android.
     
  28. Dantus

    Dantus

    Joined:
    Oct 21, 2009
    Posts:
    5,667
    Unity could have upgraded Mono on a bunch of platforms, more precisely on all platforms that allow dynamic linking. That would lead to incompatibilities among the platforms that Unity wants to avoid as much as possible.
     
    JaredThirsk likes this.
  29. UnitedMG

    UnitedMG

    Joined:
    Feb 26, 2015
    Posts:
    9
    Since I'm interested only in Android, I'm thinking about upgrading Mono myself. I should have stated this clearer before.
     
  30. Dantus

    Dantus

    Joined:
    Oct 21, 2009
    Posts:
    5,667
    You are certainly open to do so. In my opinion it is not worth the effort. First, I am not even sure whether you will be able to handle an update without touching Unity's source code, which makes it impossible, as I don't expect you have a source license.