Developing the Linux build of Corona

Thank you so much for sharing this! Going to test it ASAP.

This is awesome.

So I tried it out. Unforunately, it seems to completely break when you use it on a HDPi monitor using display scaling.

I’m running Ubuntu 18.04 on a 4k monitor using 200% display scaling and this is how a project with a resolution of 640x480 appears for me:

Using zoomstretch scaling: 9ywVo9W.png

Using letterbox scaling: lrKy5jl.png

Welcome screen: XSvbSea.png

Any chance that you could look into this issue please?

PS: Building a linux binary fails also. I tried building the new template project (storyboard tabbed application) and it fails to run due to not being able to locate widget assets.

Thanks again for all your hard work on this. I’d love to help collaborate if you’re willing to open source your efforts. I’m experienced in C/C++/Obj-C, C# etc.

Any chace for update to support Ubuntu 19.10/Ubuntu 20.04?

We are not actively working on Linux builds. The current builds should work on Ubuntu’s more modern versions.

Rob

GM :slight_smile: Rob !

                      I installed the beta version on debian buster adding some lib files .It shown in the main menu under Development group but on clicking it only a flash of a window and nothing . So plz provide the latest build , thanx.

@marsmht18, can you be more clear about what you’re doing? Are you building Linux apps using Windows or macOS? Or are you trying to use one of the various early alpha/preview versions where you run the Simulator on Linux? Or are you trying to get the Windows version running under Wine on Linux? 

If you’re trying to use one of the various early alpha/previews where are you getting it from?

Rob

Great work for the linux support of Corona Simulator!

Are there any more work planned for implementing zooming/select device ? Also I cant get the utf8.lua plugin to work “automatically downloaded” in the linux build by adding it to build.settings (I have to manually retrieve the file and put it into my source folder)

I tried to build the simulator myself in linux mint, but got errors with lopenal and ljpeg during the linking. I read that the build relies on a linux docker in osx. Does this mean that it’s only possible to build in osx if I want a native simulator for Linux?

Best regards / Victor

We hope community members will take up the Linux support through our open source initiative. There are way too many other things that we have to spend our engineering time on.

Rob

Makes sense!

Im willing to improve the Linux build, but I need to understand the core of the build process first.

Best regards / Victor

Well the best bet would be to join Slack and jump on the #linux channel. That’s were the latest (albeit several months old) information is. Also Engineering can give you some advice on building it, but there is probably a makefile and you just run make on it.

Rob

Can you share your thought how Corona’s Linux builds will be invaluable?

It’s you’re building apps for businesses or enterprises that champion Linux software uses, then yes…but if you’re building apps/games for consumers…i don’t know.

Primary, Middle, High schools are adopting Chromebooks and iPads.

I do know that tertiary education institutions try to keep their software cost low with Linux and there’s ton’s of software developed and used to do research.

Ben.

Corona’s ability to build for Linux (from Windows or macOS simulator) is further along than being able to run the simulator on Linux, but it’s still Alpha at best and we are not working on it.

Linux, while may be a popular platform for developers, the reality is there is almost no way to monetize it as a developer. There are no app stores, beyond Steam and I’m not sure how popular Linux games and apps are on Steam. Steam has some micro-transaction features, but again I’m not sure how profitable they are. There are few if any ad SDK’s for Linux.

Linux is a very open source oriented environment. People expect open source software which means no income potential  for you as a developer. 

Rob

Thanks for sharing Rob!

I disagree with you in that one cannot make money with Linux. As you said, many of us use Linux as cross-platform development platform, but some of us also make money writing software for Linux.  Agree that Linux games are not as popular as Windows ones and they seem no to sell well, but I write other software for macOS, Windows, Linux, AIX, Solaris and many other Unix incarnations and the ability of Linux to run on different hardware architectures allows me to do a lot of cross compiling using Linux.

Additionally I use Corona to build business apps that run on Windows, macOS, iOS and Android, as well as to teach kids game programming, which among many other things, allows them to understand physics concepts. Therefore,  having the ability to run the simulator in Linux would save me money in licenses for teaching, and having the ability to build apps for Linux would allow me to produce my business apps for Linux as well as the other platforms, and believe me, there more and more businesses that run a lot of stuff on Linux.

So I think that at the moment, what we need is the ability to run the simulator in Linux, as wells as to be able to build FOR Linux, even if not FROM Linux. It would be nice to have that possibility in the future, but at the moment we could make the final builds on Windows or a mac, especially as one if needed to build for iPhones and iPads and those who do already own one.

I am extremely experienced writing cross-platform software in many languages, including C, C++ and assembler of few hardware platforms. And although I do not have a lot of free time, I would be interested on having access to the sources of the Linux efforts so I can build and run them on my systems, so I would be able to tweak and fix errors that I find, and contribute them to the community.

Unless I’m mistaken, you should have access to said files relatively soon as everything is being added to GitHub under the MIT License.

Looking forward to it.

https://github.com/coronalabs/submodule-platform-linux

Our engineers had Windows/macOS able to build for Linux. Quality was an early/mid alpha. They had also started on a Linux Simulator. It would say it’s at a Proof of Concept/Early Preview state. 

A community developer made quite a bit of progress on the Welcome Screen and the UI around it and the simulator. However, none of those changes ever were pushed back to us as a pull request. 

We welcome any contributions in that area.

Rob

Cool I’ll give it a go as soon as I have some time. Its a pity the developer never pushed back the changes.  :-(
I’ll contribute anything I can as I’ve got gtk experience. But first I need to familiarise with the code. Thanks for sharing :slight_smile:

I gave it a go yesterday at cloning the repository and build the Linux stuff. I ran into few problems because I was running Ubuntu Disco (19.04 TLS) and the dependancies where mostly from Bionic Beaver (18.04 TLS), so I solved them manually from the Bionic Beaver repository, and once everything was fine I successfully built. But when I tried to run the simulator got into the classic C++ ABI problems: the dependancy libraries where built with a different ABI version than the Corona stuff I had just built. To fix this problem I had two options: install the same compiler than Bioinc Beaver uses, or delete Disco and install Bionic Beaver, which is the option I chose because I do not have time to be spent tweaking the system when Bionic Beaver works out of the box: clone the repository, install the dependancies, build and run. Fast and easy. :slight_smile:

After this problem I know that one of my contributions would have to be a build process for Red Hat Linux/CentOS, as most of my customers that use Linux use these distros and I would have to distribute binaries that are compatible with their installs so I’ll need to make a Corona SDK Red Hat/CentOS build, just be patient as my free time is scarce. :slight_smile:

I also would like to apologise because even if a bit off-topic, I would like to explain the problem -for the sake of those who do not understand what I am talking about. 0:-)

The C++ ABI is a bit of binary code that runs the constructors and destructors of classes and uses something called ‘name mangling’ to differentiate functions with the same name but different arguments and/or namespaces.  The ABI of a library needs to be compatible with the ABI of a program, which is not always the case. Therefore in order to distribute binaries of Corona Apps for Linux, we need to have few builds of -at least- the runtime of Corona. I do not think this is a problem with the Simulator, as it is used by programmers, so they can just use Bionic Beaver or tweak the compilers to build it with the same version of their distros to run them in their systems.  

My case is different, as I will need a build for Red Hat for teaching the kids because this is the Linux Distribution used on the facilities I hire to teach them.

Thanks for walking us through your process.  I appreciate your plain english explanation.  I have a few Raspberry Pi side projects that would be perfect for Corona so it will be cool to follow you (and whoever else might get involved) as you work toward a Linux solution.