Re: Meson build: status update



For that windows.h issue, try doing ifndef in the namespace definition, but there may be something included somewhere else screwing it up. You would think that there is an error with the header but it turns out there is just very little error checking and dependency checking and breaks if you include it in the wrong place. For instance, if one were to include windef.h before windows.h, you would be getting errors from windows.h where there wouldn't be any header errors at all if you were just including windef.h.

On Sun, Jan 13, 2019, 7:21 AM Eduard Nicodei via dia-list <dia-list gnome org wrote:
Hi All,

Just wanted to give a quick update on the meson build port: https://gitlab.gnome.org/GNOME/dia/merge_requests/14

This is a fairly long email so best to settle in.


1. Current status:

The branch can be found on my own fork (since I do not have Contributor access): https://gitlab.gnome.org/neduard/dia/tree/meson_port

I've tested it on Windows 10 with MSYS, Ubuntu 18.04, Arch and OpenBSD 6.4.  I am currently trying to get it building on Debian 9.5 as well.

The Windows build caused some problems, but I've ported all plug-ins, including the Python integration.  The only exception is the wmf plug-in: currently its compilation fails with "W32::std::abs - not found".  This happens when including window.h in the following snippet of code https://gitlab.gnome.org/neduard/dia/blob/meson_port/plug-ins/wmf/paginate_gdiprint.cpp#L48 :
namespace W32 {
// can't
// #define WIN32_LEAN_AND_MEAN
// because we need stuff like PRINTDLG
#include <windows.h>
}

 
I don't know how many people use this plug-in and thus have left it as such for the time being.  I don't have much experience with Windows.h so if anybody can help identifying why the issue is happening, that would be much appreciated!

Once I'm happy with all the builds, I will remove the [WIP] from the merge request and send another email inviting people to review.


2. Windows distribution

Due to the interest in upgrading the Windows installer ( https://gitlab.gnome.org/GNOME/dia/issues/22 ), I have tried to package the binaries into an archive to allow easy redistribution.  I hope this will be helpful if we want (re-)create the NSIS installer?  I have created a few archives and been keeping track of it on my fork: https://gitlab.gnome.org/neduard/dia/issues/3  Archives are signed with my key (F623017FC5900C39) but they are slightly out-dated (they do not have Cairo or Python enabled).  I will create newer ones once the branch is ready.


3. Fixes performed as part of the port

As part of the full meson port, a few issues were fixed, including:
- Correct 'Shape Designs' directory: this allows uses to define custom shapes by easily placing connection points on the diagram. 
- Fix run_dia.sh not being able to run tests ( https://gitlab.gnome.org/GNOME/dia/issues/6 )
- Open manual directly in browser (do not rely on ghelp, which I think is GNOME-specific?)
- Various clean-ups in the source code - mainly simplifying & removing old / unneeded code.


Fun note: I've been searching online for mentions of Dia given that development is picking up again.  I found somebody on Reddit was trying to place connection points, but since this functionality doesn't exist in the current official Windows version, they had to manually edit the XML in the .shape files. I directed them to the Windows builds I created and it seems to work for them: https://www.reddit.com/r/software/comments/a8aqb1/diagram_software/ 


4. Going forward

The above raises the following question: what is the current development / release plan for Dia?  I've been searching online for "diagram software" and there are plenty of websites that still reference Dia as an alternative, meaning there is still interest in it.


Of those, over 80% are on Windows: https://sourceforge.net/projects/dia-installer/files/stats/os , meaning a lot of users are stuck with the 0.97.2 version which is even older than the current 0.97.3 (0.97+git) that is available on most distros.  Of course, these are sourceforge.net downloads and most definitely do not reflect the total number of users from platforms like Linux, MacOS or others.

I guess this is a big topic which probably deserves its own email chain.  I include it here since it has been on my mind for some time and it ties in with the meson Windows build.  I have put together *an idea* for a milestone on my own fork: https://gitlab.gnome.org/neduard/dia/milestones/1 but again, this is only an idea.   Zander, I know you have been working on the GTK3 port and have created a "Dia Next" Merge Request ( https://gitlab.gnome.org/GNOME/dia/merge_requests/16 ) with quite a varied TODO list.  This means you have also considered what should the next version contain.  Any thoughts?


TLDR:

Meson port is going well and approaching review-ready state.
Given the Windows port is working, it will not be long until we have an installer.  I think this is a good opportunity to discuss a release plan and distribution to our users.


Thank you all and have a wonderful 2019!

Eduard

_______________________________________________
dia-list mailing list
dia-list gnome org
https://mail.gnome.org/mailman/listinfo/dia-list
FAQ at http://live.gnome.org/Dia/Faq
Main page at http://live.gnome.org/Dia



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]