Re: Meson build: status update



On Sun, 2019-01-13 at 15:20 +0000, Eduard Nicodei 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

Hmm, You seem trustworthy let's see what we can do about that :-)

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!

I also know little of Win32 but we may be able to use cairo/GdkPixbuf to export WMF without a custom DiaRenderer

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.


Clearly Windows is a major user-base we NEED to continue supporting but with the changes 'dia-next' (read: Gtk3) we are going to have to rethink Windows packaging. NSIS seems like a good plan though, esp as we already have something to work from

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?)

ghelp? Well that's old

Ideally we should use yelp if it's available but it makes sense to just open in browser for Windows/macOS

- Various clean-ups in the source code - mainly simplifying & removing old / unneeded code.

There is a lot of that to be done, If you haven't looked at dia-next yet a lot of it is renaming + data hiding


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.

No timetable as such, I'd like to have a 1.99 release "soon" so we can get people testing but 2.0 stable will happen when ever it happens, I'd like it to happen in the next for months but I'm largely going for "when ready". After that we can try and slot into the GNOME 6-month cycle

I say 2.0 because the changes are such it seems right to go to a new major version and 0.97 is very close to 1.0


Which is slightly scary but also encouraging


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?

My thoughts are largely in that MR

I'd welcome MRs to that branch and comments of what that next version should be


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!


Likewise!


Eduard

-- 
Zander Brown <zbrown gnome org>
GNOME

Attachment: signature.asc
Description: This is a digitally signed message part



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