dia: 0.97.3.20170622 -> unstable-2022-12-14
This commit is contained in:
parent
b29899b83f
commit
467e2a2397
|
@ -1,11 +0,0 @@
|
|||
diff -ru a/app/app_procs.c b/app/app_procs.c
|
||||
--- a/app/app_procs.c 2021-01-30 11:09:52.000000000 -0500
|
||||
+++ b/app/app_procs.c 2021-01-30 11:11:05.000000000 -0500
|
||||
@@ -785,6 +785,7 @@
|
||||
|
||||
if (!filename) {
|
||||
g_print (_("Filename conversion failed: %s\n"), filenames[i]);
|
||||
+ ++i;
|
||||
continue;
|
||||
}
|
||||
|
|
@ -1,40 +1,68 @@
|
|||
{ lib, stdenv, fetchgit, autoconf, automake, libtool, gtk2, pkg-config, perlPackages,
|
||||
libxml2, gettext, python2, libxml2Python, docbook5, docbook_xsl,
|
||||
libxslt, intltool, libart_lgpl, withGNOME ? false, libgnomeui,
|
||||
gtk-mac-integration-gtk2 }:
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitLab
|
||||
, appstream-glib
|
||||
, cmake
|
||||
, dblatex
|
||||
, desktop-file-utils
|
||||
, graphene
|
||||
, gtk2
|
||||
, gtk-mac-integration-gtk2
|
||||
, intltool
|
||||
, libxml2
|
||||
, libxslt
|
||||
, meson
|
||||
, ninja
|
||||
, pkg-config
|
||||
, poppler
|
||||
, python3
|
||||
# Building with docs are failing in unstable-2022-12-14
|
||||
, withDocs ? false
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
pname = "dia";
|
||||
version = "0.97.3.20170622";
|
||||
version = "unstable-2022-12-14";
|
||||
|
||||
src = fetchgit {
|
||||
url = "https://gitlab.gnome.org/GNOME/dia.git";
|
||||
rev = "b86085dfe2b048a2d37d587adf8ceba6fb8bc43c";
|
||||
sha256 = "1fyxfrzdcs6blxhkw3bcgkksaf3byrsj4cbyrqgb4869k3ynap96";
|
||||
src = fetchFromGitLab {
|
||||
owner = "GNOME";
|
||||
repo = "dia";
|
||||
domain = "gitlab.gnome.org";
|
||||
rev = "4a619ec7cc93be5ddfbcc48d9e1572d04943bcad";
|
||||
hash = "sha256-xi45Ak4rlDQjs/FNkdkm145mx76GNHjE6Nrs1dc94ww=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
./CVE-2019-19451.patch
|
||||
];
|
||||
|
||||
buildInputs =
|
||||
[ gtk2 libxml2 gettext python2 libxml2Python docbook5
|
||||
libxslt docbook_xsl libart_lgpl ]
|
||||
++ lib.optional withGNOME libgnomeui
|
||||
++ lib.optional stdenv.isDarwin gtk-mac-integration-gtk2;
|
||||
|
||||
nativeBuildInputs = [ autoconf automake libtool pkg-config intltool ]
|
||||
++ (with perlPackages; [ perl XMLParser ]);
|
||||
patches = [ ./poppler-22_09-build-fix.patch ];
|
||||
|
||||
preConfigure = ''
|
||||
NOCONFIGURE=1 ./autogen.sh # autoreconfHook is not enough
|
||||
patchShebangs .
|
||||
'';
|
||||
configureFlags = lib.optional withGNOME "--enable-gnome";
|
||||
|
||||
# error: implicitly declaring library function 'finite' with type 'int (double)'
|
||||
NIX_CFLAGS_COMPILE = lib.optionalString (stdenv.isDarwin && stdenv.isAarch64) "-Dfinite=isfinite";
|
||||
buildInputs = [
|
||||
graphene
|
||||
gtk2
|
||||
libxml2
|
||||
python3
|
||||
poppler
|
||||
] ++
|
||||
lib.optionals withDocs [
|
||||
libxslt
|
||||
] ++
|
||||
lib.optionals stdenv.isDarwin [
|
||||
gtk-mac-integration-gtk2
|
||||
];
|
||||
|
||||
hardeningDisable = [ "format" ];
|
||||
nativeBuildInputs = [
|
||||
appstream-glib
|
||||
desktop-file-utils
|
||||
intltool
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
] ++
|
||||
lib.optionals withDocs [
|
||||
dblatex
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Gnome Diagram drawing software";
|
||||
|
|
93
pkgs/applications/graphics/dia/poppler-22_09-build-fix.patch
Normal file
93
pkgs/applications/graphics/dia/poppler-22_09-build-fix.patch
Normal file
|
@ -0,0 +1,93 @@
|
|||
diff --git a/plug-ins/pdf/pdf-import.cpp b/plug-ins/pdf/pdf-import.cpp
|
||||
index 189737908..a2a479693 100644
|
||||
--- a/plug-ins/pdf/pdf-import.cpp
|
||||
+++ b/plug-ins/pdf/pdf-import.cpp
|
||||
@@ -152,12 +152,12 @@ public :
|
||||
void
|
||||
updateLineDash (GfxState *state)
|
||||
{
|
||||
- double *dashPattern;
|
||||
- int dashLength;
|
||||
- double dashStart;
|
||||
-
|
||||
- state->getLineDash (&dashPattern, &dashLength, &dashStart);
|
||||
- this->dash_length = dashLength ? dashPattern[0] * scale : 1.0;
|
||||
+ const double *dashPattern=NULL;
|
||||
+ int dashLength=0;
|
||||
+ double dashStart=0;
|
||||
+ const std::vector<double> &dash = state->getLineDash(&dashStart); // > Poppler 22.09 ...
|
||||
+ dashPattern = dash.data();
|
||||
+ dashLength = dash.size();
|
||||
|
||||
if (dashLength == 0)
|
||||
this->line_style = DIA_LINE_STYLE_SOLID;
|
||||
@@ -318,10 +318,11 @@ public :
|
||||
//FIXME: Dia is really unhappy about zero size fonts
|
||||
if (!(state->getFontSize() > 0.0))
|
||||
return;
|
||||
- GfxFont *f = state->getFont();
|
||||
+ const std::shared_ptr<GfxFont> f = state->getFont(); // poppler 22.05 ... header changed
|
||||
+ gconstpointer f1 = &f; // GLib typedef const void * gconstpointer;
|
||||
|
||||
// instead of building the same font over and over again
|
||||
- if (g_hash_table_lookup (this->font_map, f)) {
|
||||
+ if (g_hash_table_lookup (this->font_map, f1)) {
|
||||
++font_map_hits;
|
||||
return;
|
||||
}
|
||||
@@ -333,8 +334,9 @@ public :
|
||||
gchar *family = g_strdup (f->getFamily() ? f->getFamily()->c_str() : "sans");
|
||||
|
||||
// we are (not anymore) building the same font over and over again
|
||||
+ f1 = &f;
|
||||
g_print ("Font 0x%x: '%s' size=%g (* %g)\n",
|
||||
- GPOINTER_TO_INT (f), family, state->getTransformedFontSize(), scale);
|
||||
+ GPOINTER_TO_INT (f1), family, state->getTransformedFontSize(), scale);
|
||||
|
||||
// now try to make a fontname Dia/Pango can cope with
|
||||
// strip style postfix - we already have extracted the style bits above
|
||||
@@ -354,7 +356,9 @@ public :
|
||||
fsize *= fabs(fm[3] / fm[0]);
|
||||
font = dia_font_new (family, style, fsize * scale / 0.8);
|
||||
|
||||
- g_hash_table_insert (this->font_map, f, font);
|
||||
+ f1 = &f;
|
||||
+ gpointer f2 = (gpointer)f1; // GLib typedef void* gpointer;
|
||||
+ g_hash_table_insert (this->font_map, f2, font);
|
||||
g_free (family);
|
||||
}
|
||||
void updateTextShift(GfxState *state, double shift)
|
||||
@@ -721,11 +725,12 @@ DiaOutputDev::drawString(GfxState *state, GooString *s)
|
||||
return;
|
||||
if (!(state->getFontSize() > 0.0))
|
||||
return;
|
||||
- font = (DiaFont *)g_hash_table_lookup (this->font_map, state->getFont());
|
||||
+ gconstpointer f_1 = &state->getFont();
|
||||
+ font = (DiaFont *)g_hash_table_lookup (this->font_map, f_1);
|
||||
|
||||
// we have to decode the string data first
|
||||
{
|
||||
- GfxFont *f = state->getFont();
|
||||
+ const std::shared_ptr<GfxFont> f = state->getFont();
|
||||
const char *p = s->c_str();
|
||||
CharCode code;
|
||||
int j = 0, m, n;
|
||||
@@ -870,8 +875,8 @@ import_pdf(const gchar *filename, DiagramData *dia, DiaContext *ctx, void* user_
|
||||
std::unique_ptr<PDFDoc> doc;
|
||||
GooString *fileName = new GooString(filename);
|
||||
// no passwords yet
|
||||
- GooString *ownerPW = NULL;
|
||||
- GooString *userPW = NULL;
|
||||
+ const std::optional<GooString> ownerPW;
|
||||
+ const std::optional<GooString> userPW;
|
||||
gboolean ret = FALSE;
|
||||
|
||||
// without this we will get strange crashes (at least with /O2 build)
|
||||
@@ -899,6 +904,7 @@ import_pdf(const gchar *filename, DiagramData *dia, DiaContext *ctx, void* user_
|
||||
delete diaOut;
|
||||
ret = TRUE;
|
||||
}
|
||||
+ doc.reset();
|
||||
delete fileName;
|
||||
|
||||
return ret;
|
|
@ -28326,9 +28326,7 @@ with pkgs;
|
|||
|
||||
dht = callPackage ../applications/networking/p2p/dht { };
|
||||
|
||||
dia = callPackage ../applications/graphics/dia {
|
||||
inherit (gnome2) libart_lgpl libgnomeui;
|
||||
};
|
||||
dia = callPackage ../applications/graphics/dia { };
|
||||
|
||||
direwolf = callPackage ../applications/radio/direwolf {
|
||||
hamlib = hamlib_4;
|
||||
|
|
Loading…
Reference in a new issue