1
0
mirror of https://git.FreeBSD.org/ports.git synced 2025-01-27 10:03:20 +00:00

graphics/inkscape: update to 1.4

Release notes: https://inkscape.org/doc/release_notes/1.4/Inkscape_1.4.html

Includes required corresponding math/lib2geom update to 1.4

PR: 282864
Reported by: lumiwa[at]gmail[dot]com
Reviewed by: fluffy
Differential Revision: https://reviews.freebsd.org/D47690
This commit is contained in:
Charlie Li 2024-12-04 21:57:48 -05:00
parent 7df5d2371c
commit cc38be9252
No known key found for this signature in database
GPG Key ID: 678F936058415CCA
7 changed files with 1017 additions and 339 deletions

View File

@ -1,9 +1,11 @@
PORTNAME= inkscape
DISTVERSION= 1.3.2
PORTREVISION= 4
DISTVERSION= 1.4
CATEGORIES= graphics gnome
MASTER_SITES= https://media.inkscape.org/dl/resources/file/
PATCH_SITES= https://gitlab.com/${PORTNAME}/${PORTNAME}/-/commit/
PATCHFILES+= eb6dadcf1a5c660167ba43f3606c8e7cc6529787.patch:-p1 # https://gitlab.com/inkscape/inkscape/-/merge_requests/6755
MAINTAINER= gnome@FreeBSD.org
COMMENT= Full featured open source SVG editor
WWW= https://inkscape.org
@ -29,31 +31,31 @@ LIB_DEPENDS= libboost_filesystem.so:devel/boost-libs \
libharfbuzz.so:print/harfbuzz \
libpotrace.so:graphics/libpotrace \
libpng.so:graphics/png \
libsoup-2.4.so:devel/libsoup \
libenchant-2.so:textproc/enchant2 \
libepoxy.so:graphics/libepoxy \
lib2geom.so:math/lib2geom
RUN_DEPENDS= ${PYNUMPY} \
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}numpy>0:math/py-numpy@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}appdirs>0:devel/py-appdirs@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}lxml>0:devel/py-lxml@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}filelock>=3.7.1:sysutils/py-filelock@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}scour>0:textproc/py-scour@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}cachecontrol>0:www/py-cachecontrol@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}cssselect>0:www/py-cssselect@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}filelock>=3.7.1:sysutils/py-filelock@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}lxml>0:devel/py-lxml@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}requests>0:www/py-requests@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}scour>0:textproc/py-scour@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}tinycss2>0:textproc/py-tinycss2@${PY_FLAVOR} \
fig2dev:print/fig2dev
TEST_DEPENDS= googletest>0:devel/googletest \
bash:shells/bash
USES= compiler:c++17-lang cmake:testing cpe desktop-file-utils ghostscript:run \
USES= compiler:c++20-lang cmake:testing cpe desktop-file-utils ghostscript:run \
gnome jpeg pathfix pkgconfig python \
readline shebangfix tar:xz xorg
USE_GNOME= cairo gdkpixbuf2 gtkmm30 gtksourceview4 libxml2 libxslt
USE_GNOME= cairo gdkpixbuf2 glibmm gtkmm30 gtksourceview4 libxml2 libxslt
USE_PYTHON= cython
USE_XORG= sm ice x11 xext
USE_LDCONFIG= yes
DATETAG= 2023-11-25_091e20ef0f
DATETAG= 2024-10-09_e7c3feb100
WRKSRC= ${WRKDIR}/${PORTNAME}-${DISTVERSION}_${DATETAG}
BINARY_ALIAS= python3=${PYTHON_CMD}

View File

@ -1,3 +1,5 @@
TIMESTAMP = 1720270922
SHA256 (inkscape-1.3.2.tar.xz) = dbd1844dc443fe5e10d3e9a887144e5fb7223852fff191cfb5ef7adeab0e086b
SIZE (inkscape-1.3.2.tar.xz) = 44720944
TIMESTAMP = 1732135455
SHA256 (inkscape-1.4.tar.xz) = c59a85453b699addebcd51c1dc07684dd96a10c8aec716b19551db50562e13f5
SIZE (inkscape-1.4.tar.xz) = 46321868
SHA256 (eb6dadcf1a5c660167ba43f3606c8e7cc6529787.patch) = 2c2e04d8524fb75e7758ba43742512ad66447ec0b56f28279f4679b96cd1425f
SIZE (eb6dadcf1a5c660167ba43f3606c8e7cc6529787.patch) = 1149

View File

@ -1,36 +0,0 @@
From 6bbd3647c4d6aab425e53cb4b7d3f33a98e45e6f Mon Sep 17 00:00:00 2001
From: Christian Hesse <mail@eworm.de>
Date: Fri, 17 Nov 2023 22:30:42 +0100
Subject: [PATCH] include missing header file
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This fixes build error:
```
/build/inkscape/src/inkscape/src/object/uri.cpp: In constructor Inkscape::URI::URI(const gchar*, const char*):
/build/inkscape/src/inkscape/src/object/uri.cpp:86:9: error: xmlFree was not declared in this scope; did you mean xmlFreeURI?
86 | xmlFree(full);
```
(cherry picked from commit 694d8ae43d06efff21adebf377ce614d660b24cd)
---
src/object/uri.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/object/uri.h b/src/object/uri.h
index 381adec58cf..d5b211fe2b2 100644
--- src/object/uri.h
+++ src/object/uri.h
@@ -13,6 +13,7 @@
#define INKSCAPE_URI_H
#include <libxml/uri.h>
+#include <libxml/xmlmemory.h>
#include <memory>
#include <string>
--
GitLab

View File

@ -1,167 +0,0 @@
From f0355a6341aceee93ce4d4d70cd9ec3a44081c38 Mon Sep 17 00:00:00 2001
From: Rafael Siejakowski <rs@rs-math.net>
Date: Sun, 20 Aug 2023 18:15:19 +0200
Subject: [PATCH] Fix build on FreeBSD: rename two helper functions
The functions roundup() and rounddown() are renamed to round_up() and
round_down(), respectively. This prevents a name clash with the macros
roundup and rounddown defined in sys/param.h which for some reason gets
pulled in on FreeBSD.
Fixes https://gitlab.com/inkscape/inbox/-/issues/9062
---
src/display/drawing-pattern.cpp | 14 +++++++-------
src/helper/geom.h | 4 ++--
src/helper/mathfns.h | 6 +++---
src/ui/widget/canvas/pixelstreamer.cpp | 2 +-
src/util/pool.cpp | 6 +++---
5 files changed, 16 insertions(+), 16 deletions(-)
diff --git a/src/display/drawing-pattern.cpp b/src/display/drawing-pattern.cpp
index 6b30c968ded..34df2f873b1 100644
--- src/display/drawing-pattern.cpp
+++ src/display/drawing-pattern.cpp
@@ -89,7 +89,7 @@ cairo_pattern_t *DrawingPattern::renderPattern(RenderContext &rc, Geom::IntRect
if (rect.dimensions()[i] >= _pattern_resolution[i]) {
rect[i] = {0, _pattern_resolution[i]};
} else {
- rect[i] -= Util::rounddown(rect[i].min(), _pattern_resolution[i]);
+ rect[i] -= Util::round_down(rect[i].min(), _pattern_resolution[i]);
}
}
return rect;
@@ -101,7 +101,7 @@ cairo_pattern_t *DrawingPattern::renderPattern(RenderContext &rc, Geom::IntRect
int const period = _pattern_resolution[i];
if (a[i].extent() >= period) return true;
if (b[i].extent() > a[i].extent()) return false;
- return Util::rounddown(b[i].min() - a[i].min(), period) >= b[i].max() - a[i].max();
+ return Util::round_down(b[i].min() - a[i].min(), period) >= b[i].max() - a[i].max();
};
return check(0) && check(1);
};
@@ -112,7 +112,7 @@ cairo_pattern_t *DrawingPattern::renderPattern(RenderContext &rc, Geom::IntRect
int const period = _pattern_resolution[i];
if (a[i].extent() >= period) return true;
if (b[i].extent() >= period) return true;
- return Util::rounddown(b[i].max() - a[i].min(), period) >= b[i].min() - a[i].max();
+ return Util::round_down(b[i].max() - a[i].min(), period) >= b[i].min() - a[i].max();
};
return check(0) && check(1);
};
@@ -121,8 +121,8 @@ cairo_pattern_t *DrawingPattern::renderPattern(RenderContext &rc, Geom::IntRect
auto overlapping_translates = [&, this] (Geom::IntRect const &a, Geom::IntRect const &b) {
Geom::IntPoint min, max;
for (int i = 0; i < 2; i++) {
- min[i] = Util::roundup (b[i].min() - a[i].max() + 1, _pattern_resolution[i]);
- max[i] = Util::rounddown(b[i].max() - a[i].min() - 1, _pattern_resolution[i]);
+ min[i] = Util::round_up (b[i].min() - a[i].max() + 1, _pattern_resolution[i]);
+ max[i] = Util::round_down(b[i].max() - a[i].min() - 1, _pattern_resolution[i]);
}
return std::make_pair(min, max);
};
@@ -165,7 +165,7 @@ cairo_pattern_t *DrawingPattern::renderPattern(RenderContext &rc, Geom::IntRect
for (auto it = surfaces.begin(); it != surfaces.end(); ) {
if (wrapped_touches(expanded, it->rect)) {
- expanded.unionWith(it->rect + rounddown(expanded.max() - it->rect.min(), _pattern_resolution));
+ expanded.unionWith(it->rect + round_down(expanded.max() - it->rect.min(), _pattern_resolution));
merged.emplace_back(std::move(*it));
*it = std::move(surfaces.back());
surfaces.pop_back();
@@ -259,7 +259,7 @@ cairo_pattern_t *DrawingPattern::renderPattern(RenderContext &rc, Geom::IntRect
// Create and return pattern.
auto cp = cairo_pattern_create_for_surface(surface->surface->cobj());
- auto const shift = surface->rect.min() + rounddown(area_orig.min() - surface->rect.min(), _pattern_resolution);
+ auto const shift = surface->rect.min() + round_down(area_orig.min() - surface->rect.min(), _pattern_resolution);
ink_cairo_pattern_set_matrix(cp, pattern_to_tile * Geom::Translate(-shift));
cairo_pattern_set_extend(cp, CAIRO_EXTEND_REPEAT);
if (rc.antialiasing_override && rc.antialiasing_override.value() == Antialiasing::None) {
diff --git a/src/helper/geom.h b/src/helper/geom.h
index 59542e7d44f..e8b1d1f46ee 100644
--- src/helper/geom.h
+++ src/helper/geom.h
@@ -54,10 +54,10 @@ inline Geom::Coord triangle_area(Geom::Point const &p1, Geom::Point const &p2, G
return p1[X] * p2[Y] + p1[Y] * p3[X] + p2[X] * p3[Y] - p2[Y] * p3[X] - p1[Y] * p2[X] - p1[X] * p3[Y];
}
-inline auto rounddown(Geom::IntPoint const &a, Geom::IntPoint const &b)
+inline auto round_down(Geom::IntPoint const &a, Geom::IntPoint const &b)
{
using namespace Inkscape::Util;
- return Geom::IntPoint(rounddown(a.x(), b.x()), rounddown(a.y(), b.y()));
+ return Geom::IntPoint(round_down(a.x(), b.x()), round_down(a.y(), b.y()));
}
inline auto expandedBy(Geom::IntRect rect, int amount)
diff --git a/src/helper/mathfns.h b/src/helper/mathfns.h
index 6f466fb2c33..730b6ba2153 100644
--- src/helper/mathfns.h
+++ src/helper/mathfns.h
@@ -79,16 +79,16 @@ T constexpr safemod(T a, T b)
/// Returns \a a rounded down to the nearest multiple of \a b, assuming b >= 1.
template <typename T, typename std::enable_if<std::is_integral<T>::value, bool>::type = true>
-T constexpr rounddown(T a, T b)
+T constexpr round_down(T a, T b)
{
return a - safemod(a, b);
}
/// Returns \a a rounded up to the nearest multiple of \a b, assuming b >= 1.
template <typename T, typename std::enable_if<std::is_integral<T>::value, bool>::type = true>
-T constexpr roundup(T a, T b)
+T constexpr round_up(T a, T b)
{
- return rounddown(a - 1, b) + b;
+ return round_down(a - 1, b) + b;
}
/**
diff --git a/src/ui/widget/canvas/pixelstreamer.cpp b/src/ui/widget/canvas/pixelstreamer.cpp
index 74d557b37b1..ddafee96bac 100644
--- src/ui/widget/canvas/pixelstreamer.cpp
+++ src/ui/widget/canvas/pixelstreamer.cpp
@@ -99,7 +99,7 @@ public:
// Calculate image properties required by cairo.
int stride = cairo_format_stride_for_width(CAIRO_FORMAT_ARGB32, dimensions.x());
int size = stride * dimensions.y();
- int sizeup = Util::roundup(size, 64);
+ int sizeup = Util::round_up(size, 64);
assert(sizeup < bufsize);
// Attempt to advance buffers in states 3 or 4 towards 5, if allowed.
diff --git a/src/util/pool.cpp b/src/util/pool.cpp
index 455366b9f1b..89fe77ae023 100644
--- src/util/pool.cpp
+++ src/util/pool.cpp
@@ -8,7 +8,7 @@
namespace Inkscape::Util {
// Round up x to the next multiple of m.
-static std::byte *roundup(std::byte *x, std::size_t m)
+static std::byte *round_up(std::byte *x, std::size_t m)
{
auto y = reinterpret_cast<uintptr_t>(x);
y = ((y - 1) / m + 1) * m;
@@ -17,7 +17,7 @@ static std::byte *roundup(std::byte *x, std::size_t m)
std::byte *Pool::allocate(std::size_t size, std::size_t alignment)
{
- auto a = roundup(cur, alignment);
+ auto a = round_up(cur, alignment);
auto b = a + size;
if (b <= end) {
@@ -33,7 +33,7 @@ std::byte *Pool::allocate(std::size_t size, std::size_t alignment)
resetblock();
nextsize = cursize * 3 / 2;
- a = roundup(cur, alignment);
+ a = round_up(cur, alignment);
b = a + size;
assert(b <= end);
--
GitLab

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,5 @@
PORTNAME= lib2geom
DISTVERSION= 1.3
PORTREVISION= 3
DISTVERSION= 1.4
CATEGORIES= math gnome
MAINTAINER= gnome@FreeBSD.org
@ -22,8 +21,8 @@ RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}cairo>0:graphics/py-cairo@${PY_FLAVOR}
TEST_DEPENDS= googletest>0:devel/googletest \
ragel:devel/ragel
USES= cmake:testing gettext-runtime gnome localbase:ldflags pkgconfig \
python
USES= compiler:c++20-lang cmake:testing gettext-runtime gnome localbase:ldflags \
pkgconfig python
USE_GNOME= cairo glib20 gtk30
USE_PYTHON= cython cython_test

View File

@ -1,3 +1,3 @@
TIMESTAMP = 1692190492
SHA256 (lib2geom-1.3.tar.bz2) = bd07f2a1322fcad16a55a1901207faa55dffdecebc56a00eabd4575f62e043c9
SIZE (lib2geom-1.3.tar.bz2) = 1275751
TIMESTAMP = 1732134434
SHA256 (lib2geom-1.4.tar.bz2) = 717a87ce7f2192271a789c1273ae7b432856c522647b9fe33bb4dd662942b3ea
SIZE (lib2geom-1.4.tar.bz2) = 1287532