📜 ⬆️ ⬇️

MonoDevelop on the Nokia N900. Where is your God now?


Everything that can work at all works. Editor, compilation, debugger, variable value by clicking in the debugger. With a wild squeak and screech even the form designer.

Feel these nishtyaki in his mobile phone, you can add
deb http_://archive.kebrum.com/n900/ all main
In sources.list (I hope I have not forgotten when packing). You will also need to connect extras-testing and extras-devel. Then type in the console apt-get install monodevelop. The entire hierarchy of packages is fully consistent with that in Debian, with the exception of 2 opt-in packages, but they will automatically pull up on dependencies.

While the packages are being installed, scoring an invaluable place in rootfs with libraries from maemov reps (I have everything in / opt, you do not think about it!), I suggest you read how I came to life like that.
')


I wanted to talk about everything in order, but to start a five-minute hate.

I want to say hello to sodomites from Nokia, who instead of the normal emulator of their device, slipped an unfinished old version of qemu-arm, which made it impossible to use the mono compiler, and, as a result, build any managed code through this SDK. They gave me a lot of fun hours.
I want to say hello to gtk binders, who built a code generator that generates something non-compiled (which turned their assembly into a nightmare from the series “don't try to repeat this at home”), and also thinks that HButtonBox is in the gtkshnom dialogue , although the documentation says that there is an abstract container (with the result that GtkDialog.ArctionArea was always null). They also gave me a lot of fun hours.
I also want to say hello to Mono.Addins developers, who write such code here:

string folder = args.Length > 2 ? args [2] : null ;
if ( folder .Length == 0) folder = null;


On this five-minute hate can be considered complete. In the end, they are all good people, thanks to whom it all worked.

Actually, after writing the previous post, I decided not to edit debian / rules in order to transfer all the trash to / opt, because it broke some of the components. Now the optimization is done by pre-creating symlinks on the necessary directories. By the way, due to this, you can easily clean out mono and everything associated with it, simply by removing the mono-opt-prepare package. After assembling the bindings to the GTC, and checking the efficiency of what it was all about (by the way, the software started up without any changes to the source, I am now redoing the dialogs to fit the screen and finger control), I decided to check the assembly as a whole. What is the most difficult program on GTK #? That's right, Monodevelop. Immediately after the assembly of all dependencies (some packages were pulled directly in binary form from ports.ubuntu.com) I ran into the following dirty trick:
image

And so with almost all the dialogues. Since the raw bindings have already been patched due to a bug with ActionArea, I didn’t think of anything better than to hide the original VBox from an external observer, and instead slip another one wrapped in a ScrolledWindow. Half an hour of shamanism and it turned out GtkDialog, adequately adapting to the size of its contents. Like this:



What prevented the Nokiev programmers from doing the same thing (given that they had already altered the dialogue to a state of incompatibility with the bindings), and not breaking the software, sharpened under large screens, remains a mystery to me. If someone wants to reach out to the original VBox, it is easy to do this simply by clicking on the links to the 2 levels of the hierarchy.

Some problem was the interaction with the debugger and the compiler, but this was solved by adding a few more symlinks, although it required to dig into the source.

Now a spoon of tar. I didn’t manage to disable HILDON_GTK_INPUT_MODE_AUTOCAP via IMContext (for TextArea and Entry everything is fine, but MonoDevelop uses its control to edit the text and works with IMMultiContext directly), so you’ll have to either disable the automatic substitution of capital letters globally or print holding the shift. If someone has information about this, please share.

In addition to the above, this infection for some reason does not see in the list of assemblies for connecting a library that are not directly related to Mono. It is treated by adding them in an absolute way. I will try to fix this, but I promise nothing.

And further. It seems that it will never get into the turnips of Nokiev for the reason that because of the peculiarities of the build process (we take this file from the emulator, those 10 of the compiled under ubuntu, then we slow down the build process and slip the source generated under the same ubunt, we rule links, rule debian / control, etc) it is impossible to create imputed source code packages, and it is very difficult to convince them of the security of binaries. In other matters, if someone is connected with this party and decides to help, I will be glad.

I remind you that now you can develop software for the N900 even in Visual Studio, if anyone has any problems with this, please contact me, I will be happy to help.

UPD: it turned out that in the absence of bash there are problems with the installation. If someone has already encountered, then apt-get install bash is treated. Now I will prescribe it depending.

UPD2: And also started Paint.NET:

The package is called paint-mono and is already in the repository.

Source: https://habr.com/ru/post/117149/


All Articles