dia, new recipe (#13754)

This commit is contained in:
Schrijvers Luc
2026-02-20 13:11:08 +01:00
committed by GitHub
parent eed1438bf9
commit 3e84121e4d
3 changed files with 302 additions and 0 deletions

View File

@@ -0,0 +1,83 @@
resource app_flags B_SINGLE_LAUNCH;
resource app_version {
major = @MAJOR@,
middle = @MIDDLE@,
minor = @MINOR@,
variety = B_APPV_DEVELOPMENT,
internal = 0,
short_info = "@APP_NAME@",
long_info = "@LONG_INFO@"
};
resource app_signature "@APP_SIGNATURE@";
resource vector_icon {
$"6E6369660C01995BC800020006022B417BBA0A3339A7192BA2E84A141249A084"
$"00E5A50AFFF6D32D02000602000000BAFFFF3AFFFF0000004A600049A66600C6"
$"4600FFFF780002000202BCC000000000000000BCC000494000464CCC009A9996"
$"FFFFC0BFBCEB02000602BCC000000000000000BCC00049400045999900000000"
$"FF3D384601C85BB10002000602000000BC20003C200000000049A0004A033300"
$"9A9996FFC0BFBC02000602000000BBD9993BD999000000496CCC4A1CCC000000"
$"00FF3D384602000602000000B8CCCC38309D000000480C274799990026A269FF"
$"33D17A018FF0A4E802000602000000B6CCCC36309D000000478C274799990026"
$"A269FF33D17A05BE100205C85B24C85B24C934245C24CA0E245CB5715CB7245C"
$"B64BCA0EB724C85BB724C934B724C85BB64BC85B24C85BB571C85B2402043ABD"
$"AD3ABDADBDE4BECB3EC106BE6BBFE8BDE4C10636C106BCD4C106BC4BBFE83ABD"
$"ADBCD4BECB3ABDAD02043ABB203ABB20BC3EBD77BA0346BB20BFCDBC3E46C0B4"
$"46BE7946BF97BFCD3ABB20BE79BD773ABB2002043ABDAD3ABDADBDE4BECB3EC1"
$"06BE6BBFE8BDE4C10636C106BCD4C106BC4BBFE83ABDADBCD4BECB3ABDAD0204"
$"3ABB203ABB20BC3EBD77BA0346BB20BFCDBC3E46C0B446BE7946BF97BFCD3ABB"
$"20BE79BD773ABB200212B447B836B447B836B447B8C3B447B9DEB447B951B779"
$"B9DEBDDDB9DEBAABB9DEBFDDB9DFC2EBBB76C1A8BA80C42FBC6DC4E8BF0CC4E8"
$"BDAFC4E8C069C2EBC2A2C42FC1ABC1A6C399BDD7C43ABFD9C43ABB0BC43AB573"
$"C43AB83FC43AB50EC43AB444C43AB4A9C43AB443C43AB441C43AB442C43AB441"
$"C4C7B441C5E2B441C555B773C5E2BDD7C5E2BAA5C5E2C031C5E2C3EEC3F4C257"
$"C52AC586C2BEC691BF0CC691C100C691BD18C3EEBA24C586BB5AC258B8EFBDDD"
$"B836C035B837BAACB836B44BB836B77CB836B44AB836B447B836B449B836B447"
$"B8360212B447B836B447B836B447B8C3B447B9DEB447B951B779B9DEBDDDB9DE"
$"BAABB9DEBFDDB9DFC2EBBB76C1A8BA80C42FBC6DC4E8BF0CC4E8BDAFC4E8C069"
$"C2EBC2A2C42FC1ABC1A6C399BDD7C43ABFD9C43ABB0BC43AB573C43AB83FC43A"
$"B50EC43AB444C43AB4A9C43AB443C43AB441C43AB442C43AB441C4C7B441C5E2"
$"B441C555B773C5E2BDD7C5E2BAA5C5E2C031C5E2C3EEC3F4C257C52AC586C2BE"
$"C691BF0CC691C100C691BD18C3EEBA24C586BB5AC258B8EFBDDDB836C035B837"
$"BAACB836B44BB836B77CB836B44AB836B447B836B449B836B447B83602052024"
$"2024B9CC24C76624C09924C766BB64C766C8FEC766C231C099C8FE20C8FEB9CC"
$"C8FE20C231202420BB64202402082ABAA62ABAA62ABE932AC66D2AC280B6CCC6"
$"6DB66DC66DB69DC66DB6E1C6E92CC7E0B754C764B83BC764B922C66DB8AEC6E9"
$"B8F2C66D2EC66DB8C3C66D2EC2802EBAA62EBE93B80BBAA62ABAA6B784BAA62A"
$"BAA602082ABAA62ABAA62ABE932AC66D2AC280B6CCC66DB66DC66DB69DC66DB6"
$"E1C6E92CC7E0B754C764B83BC764B922C66DB8AEC6E9B8F2C66D2EC66DB8C3C6"
$"6D2EC2802EBAA62EBE93B80BBAA62ABAA6B784BAA62ABAA60205B5DEB681B5DE"
$"B681B724B681B9B1B681B86BB681B9B1B7FEB9B134B9B1B97BB86B34B5DE34B7"
$"2434B5DEB97BB5DEB681B5DEB7FEB5DEB681020528B6E028B6E0B73FB6E030B6"
$"E0B84FB6E030B81E30BA9830B95BB84FBA9828BA98B73FBA9828B95B28B6E028"
$"B81E28B6E00205B681B740B681B740B75BB740B90EB740B834B740B90EB83DB9"
$"0EBA39B90EB93BB834BA39B681BA39B75BBA39B681B93BB681B740B681B83DB6"
$"81B740021BC927B4C0C927B4C0C927B4DBC927B512C927B4F758B512C9A1B512"
$"C978B512C9F3B5125AB53BC9F3B512CA4426CA6DB5DECA6DB5A2CA6D285AB681"
$"CA44B658C9F3B6AAC9A1B6AAC9F3B6AAC94CB6ABC8D5B6AAC92BB6AAC8D5B63D"
$"C8D526C8D5B5D0C8BA265626C89F2656B5EC562A56B673C8912AC8AC2AC89F2A"
$"C909B6FBC9A12AC944B6FDC9A12AC9A12AC9A12AC9A12AC9A12AC9A12A5A2ACA"
$"81B69BCA51B6D7CA81B69BCA81B69BCA81B69BCA81B69BCA81B69BCA81B69BCA"
$"B1B65CCABFB5DECABEB61ECABFB5DECABFB5DECABFB5DECABFB5DECABFB5DECA"
$"BFB5DECABFB5A0CA70B50ECAA8B541CA70B50ECA70B50ECA70B50ECA70B50ECA"
$"70B50ECA70B50ECA35B4DAC9A1B4C05AB4C0C9A1B4C0C9A1B4C0C9A1B4C0C978"
$"B4C0C927B4C058B4C0C927B4C00205C85B24C85B24C89124C8FE24C8C824C8FE"
$"B4CEC8FEB53BC8FEB504C8C8B53BC85BB53BC891B53BC85BB504C85B24C85BB4"
$"CEC85B240204C98D26C98D26C96BB5A7C92728C949B5ECC96B28C9F328C9AF28"
$"C9D1B5ECC98D26C9AFB5A7C98D260E0A00010002402222000000000000401E00"
$"0000003F10000A0102010202402222000000000000401E000000003F10000A02"
$"02030412402222000000000000401E000000003F100001178000040A03010502"
$"402222000000000000401E000000003F10000A04010612402222000000000000"
$"401E000000003F100001178000040A05010702402222000000000000401E0000"
$"00003F10000A06010802402222000000000000401E000000003F10000A070109"
$"12402222000000000000401E000000003F100001178000040A08010A02402222"
$"000000000000401E000000003F10000A09010B02402222000000000000401E00"
$"0000003F10000A0A010C02402222000000000000401E000000003F10000A0B01"
$"0D02402222000000000000401E000000003F10000A0B010E0240222200000000"
$"0000401E000000003F10000A0B010F02402222000000000000401E000000003F"
$"1000"
};

View File

@@ -0,0 +1,139 @@
SUMMARY="A Diagram Editor"
DESCRIPTION="Dia is roughly inspired by the commercial Windows program 'Visio,' though more \
geared towards informal diagrams for casual use. It can be used to draw many different kinds \
of diagrams. It currently has special objects to help draw entity relationship diagrams, UML \
diagrams, flowcharts, network diagrams, and many other diagrams. It is also possible to add \
support for new shapes by writing simple XML files, using a subset of SVG to draw the shape.
It can load and save diagrams to a custom XML format (gzipped by default, to save space), can \
export diagrams to a number of formats, including EPS, SVG, XFIG, WMF and PNG, and can print \
diagrams (including ones that span multiple pages). "
HOMEPAGE="https://wiki.gnome.org/Apps/Dia"
COPYRIGHT="1998-2011 The Free Software Foundation and the authors
2018-2021 Zander Brown et al"
LICENSE="GNU GPL v2"
REVISION="1"
srcGitRev="e62879c0690111b585f44c0544cc9f3db6320ef9"
#srcGitRev="ea793ab3eb2e5dc50e5191d782d222e15de1eccc" #libxml2 >= 2.14.0
SOURCE_URI="https://gitlab.gnome.org/GNOME/dia/-/archive/$srcGitRev.tar.gz"
CHECKSUM_SHA256="8fecaa0ce2646fb41602994498505e7cfbb324f48855d5ba1e2fc4eef05cedcf"
#CHECKSUM_SHA256="519d11da30462f4adca9042fe38dd1f4189a9a73d6eb385c6fcb9b98a26715e0" #libxml2 >= 2.14.0
SOURCE_FILENAME="dia-$portVersion-$srcGitRev.tar.gz"
SOURCE_DIR="dia-$srcGitRev"
PATCHES="dia-$portVersion.patchset"
ADDITIONAL_FILES="dia.rdef.in"
ARCHITECTURES="all !x86_gcc2"
SECONDARY_ARCHITECTURES="x86"
commandSuffix=$secondaryArchSuffix
commandBinDir=$binDir
if [ "$targetArchitecture" = x86_gcc2 ]; then
commandSuffix=
commandBinDir=$prefix/bin
fi
PROVIDES="
dia$secondaryArchSuffix = $portVersion
cmd:Dia = $portVersion
cmd:dia$commandSuffix = $portVersion
lib:libdia$secondaryArchSuffix
"
REQUIRES="
haiku$secondaryArchSuffix
lib:libcairo$secondaryArchSuffix
lib:libgdk_pixbuf_2.0$secondaryArchSuffix
lib:libglib_2.0$secondaryArchSuffix
lib:libgio_2.0$secondaryArchSuffix
lib:libgmodule_2.0$secondaryArchSuffix
lib:libgraphene_1.0$secondaryArchSuffix
lib:libpoppler$secondaryArchSuffix >= 155
lib:libgtk_3$secondaryArchSuffix
lib:libiconv$secondaryArchSuffix
lib:libintl$secondaryArchSuffix
lib:libpango_1.0$secondaryArchSuffix
lib:libpangocairo_1.0$secondaryArchSuffix
lib:libpython3.10$secondaryArchSuffix
lib:libxml2$secondaryArchSuffix
lib:libxpm_pixbuf$secondaryArchSuffix
lib:libxslt$secondaryArchSuffix
lib:libz$secondaryArchSuffix
"
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel
devel:libcairo$secondaryArchSuffix
devel:libiconv$secondaryArchSuffix
devel:libgdk_pixbuf_2.0$secondaryArchSuffix
devel:libglib_2.0$secondaryArchSuffix
devel:libgio_2.0$secondaryArchSuffix
devel:libgmodule_2.0$secondaryArchSuffix
devel:libgraphene_1.0$secondaryArchSuffix
devel:libpoppler$secondaryArchSuffix >= 155
devel:libgtk_3$secondaryArchSuffix
devel:libxml2$secondaryArchSuffix
devel:libxpm_pixbuf$secondaryArchSuffix
devel:libxslt$secondaryArchSuffix
"
BUILD_PREREQUIRES="
# cmd:appstreamcli #test
cmd:cmake
# cmd:diff #test
cmd:gcc$secondaryArchSuffix
cmd:git
cmd:meson
cmd:msgfmt$secondaryArchSuffix
cmd:msgmerge$secondaryArchSuffix
cmd:ninja
cmd:pkg_config$secondaryArchSuffix
cmd:python3.10
cmd:xsltproc
"
BUILD()
{
meson setup build --buildtype=release \
-Ddefault_library=shared \
--prefix=$prefix \
--bindir=$commandBinDir \
--libdir=$libDir \
-D tests=false
ninja -C build $jobArgs
}
INSTALL()
{
ninja -C build install
mkdir -p $appsDir
mv $commandBinDir/dia $appsDir/Dia
ln -s $appsDir/Dia $commandBinDir/dia
local MAJOR="`echo "$portVersion" | cut -d. -f1`"
local MIDDLE="`echo "$portVersion" | cut -d. -f2`"
local MINOR="`echo "$portVersion" | cut -d. -f3 | cut -d~ -f1`"
local APP_NAME="Dia"
local LONG_INFO="$SUMMARY"
local APP_SIGNATURE="application/x-vnd.dia"
sed \
-e "s|@MAJOR@|$MAJOR|" \
-e "s|@MIDDLE@|$MIDDLE|" \
-e "s|@MINOR@|$MINOR|" \
-e "s|@LONG_INFO@|$LONG_INFO|" \
-e "s|@APP_NAME@|$APP_NAME|" \
-e "s|@APP_SIGNATURE@|$APP_SIGNATURE|" \
$portDir/additional-files/dia.rdef.in > dia.rdef
addResourcesToBinaries dia.rdef $appsDir/Dia
addAppDeskbarSymlink $appsDir/Dia
# cleanup
rm -rf $dataDir/{applications,icons,metainfo}
}
TEST()
{
# 4 OK, 1 failed (crashed - dia:objects)
ninja -C build test
}

View File

@@ -0,0 +1,80 @@
From a4233f3a7a8d536107adc69ed9e5e2ba423f7ca2 Mon Sep 17 00:00:00 2001
From: Begasus <begasus@gmail.com>
Date: Wed, 18 Feb 2026 12:32:18 +0100
Subject: build fix for missing: update_desktop_database
diff --git a/meson.build b/meson.build
index d215d56..25f4ffb 100644
--- a/meson.build
+++ b/meson.build
@@ -182,7 +182,7 @@ subdir('docs')
gnome.post_install(
gtk_update_icon_cache: true,
- update_desktop_database: true
+ update_desktop_database: false
)
if build_machine.system() == 'windows' and get_option('buildtype') == 'release'
--
2.52.0
From e3b7ede0e3110b6bc50900681fb9f4b921c601fc Mon Sep 17 00:00:00 2001
From: Luc Schrijvers <begasus@gmail.com>
Date: Wed, 18 Feb 2026 17:10:53 +0100
Subject: Move settings to ~/config/settings instead of ~/.
diff --git a/app/app_procs.c b/app/app_procs.c
index 3199a8d..12b441e 100644
--- a/app/app_procs.c
+++ b/app/app_procs.c
@@ -1050,7 +1050,7 @@ create_user_dirs (void)
return; /* ... and return. Probably removes my one and only FAQ. --HB */
}
#endif
- dir = g_strconcat (g_get_home_dir (), G_DIR_SEPARATOR_S ".dia", NULL);
+ dir = g_strconcat (g_get_home_dir (), G_DIR_SEPARATOR_S "config/settings/dia", NULL);
if (g_mkdir (dir, 0755) && errno != EEXIST) {
#ifndef G_OS_WIN32
g_critical (_("Could not create per-user Dia configuration directory"));
--
2.52.0
From aef11bbb75ab664e469ff7372ac97d98f196a1a3 Mon Sep 17 00:00:00 2001
From: Luc Schrijvers <begasus@gmail.com>
Date: Fri, 20 Feb 2026 11:01:30 +0100
Subject: Fix build with poppler25.12
diff --git a/plug-ins/pdf/pdf-import.cpp b/plug-ins/pdf/pdf-import.cpp
index 4579385..79e2fca 100644
--- a/plug-ins/pdf/pdf-import.cpp
+++ b/plug-ins/pdf/pdf-import.cpp
@@ -396,7 +396,7 @@ public :
if ((pf = strstr (family, " Oblique")) != NULL)
*pf = 0;
- const double *fm = f->getFontMatrix();
+ const auto& fm = f->getFontMatrix();
double fsize = state->getTransformedFontSize();
if (fm[0] != 0)
fsize *= fabs(fm[3] / fm[0]);
@@ -776,7 +776,11 @@ void
DiaOutputDev::drawString(GfxState *state, GooString *s)
{
Color text_color = this->fill_color;
+#if POPPLER_VERSION_MAJOR > 25 || (POPPLER_VERSION_MAJOR == 25 && POPPLER_VERSION_MINOR >= 10)
+ int len = s->size();
+#else
int len = s->getLength();
+#endif
DiaObject *obj;
gchar *utf8 = NULL;
DiaFont *font;
--
2.52.0