forked from Lainports/freebsd-ports
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:
parent
7df5d2371c
commit
cc38be9252
7 changed files with 1017 additions and 339 deletions
|
|
@ -1,9 +1,11 @@
|
||||||
PORTNAME= inkscape
|
PORTNAME= inkscape
|
||||||
DISTVERSION= 1.3.2
|
DISTVERSION= 1.4
|
||||||
PORTREVISION= 4
|
|
||||||
CATEGORIES= graphics gnome
|
CATEGORIES= graphics gnome
|
||||||
MASTER_SITES= https://media.inkscape.org/dl/resources/file/
|
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
|
MAINTAINER= gnome@FreeBSD.org
|
||||||
COMMENT= Full featured open source SVG editor
|
COMMENT= Full featured open source SVG editor
|
||||||
WWW= https://inkscape.org
|
WWW= https://inkscape.org
|
||||||
|
|
@ -29,31 +31,31 @@ LIB_DEPENDS= libboost_filesystem.so:devel/boost-libs \
|
||||||
libharfbuzz.so:print/harfbuzz \
|
libharfbuzz.so:print/harfbuzz \
|
||||||
libpotrace.so:graphics/libpotrace \
|
libpotrace.so:graphics/libpotrace \
|
||||||
libpng.so:graphics/png \
|
libpng.so:graphics/png \
|
||||||
libsoup-2.4.so:devel/libsoup \
|
|
||||||
libenchant-2.so:textproc/enchant2 \
|
libenchant-2.so:textproc/enchant2 \
|
||||||
libepoxy.so:graphics/libepoxy \
|
libepoxy.so:graphics/libepoxy \
|
||||||
lib2geom.so:math/lib2geom
|
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}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}cachecontrol>0:www/py-cachecontrol@${PY_FLAVOR} \
|
||||||
${PYTHON_PKGNAMEPREFIX}cssselect>0:www/py-cssselect@${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}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
|
fig2dev:print/fig2dev
|
||||||
TEST_DEPENDS= googletest>0:devel/googletest \
|
TEST_DEPENDS= googletest>0:devel/googletest \
|
||||||
bash:shells/bash
|
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 \
|
gnome jpeg pathfix pkgconfig python \
|
||||||
readline shebangfix tar:xz xorg
|
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_PYTHON= cython
|
||||||
USE_XORG= sm ice x11 xext
|
USE_XORG= sm ice x11 xext
|
||||||
USE_LDCONFIG= yes
|
USE_LDCONFIG= yes
|
||||||
|
|
||||||
DATETAG= 2023-11-25_091e20ef0f
|
DATETAG= 2024-10-09_e7c3feb100
|
||||||
WRKSRC= ${WRKDIR}/${PORTNAME}-${DISTVERSION}_${DATETAG}
|
WRKSRC= ${WRKDIR}/${PORTNAME}-${DISTVERSION}_${DATETAG}
|
||||||
|
|
||||||
BINARY_ALIAS= python3=${PYTHON_CMD}
|
BINARY_ALIAS= python3=${PYTHON_CMD}
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,5 @@
|
||||||
TIMESTAMP = 1720270922
|
TIMESTAMP = 1732135455
|
||||||
SHA256 (inkscape-1.3.2.tar.xz) = dbd1844dc443fe5e10d3e9a887144e5fb7223852fff191cfb5ef7adeab0e086b
|
SHA256 (inkscape-1.4.tar.xz) = c59a85453b699addebcd51c1dc07684dd96a10c8aec716b19551db50562e13f5
|
||||||
SIZE (inkscape-1.3.2.tar.xz) = 44720944
|
SIZE (inkscape-1.4.tar.xz) = 46321868
|
||||||
|
SHA256 (eb6dadcf1a5c660167ba43f3606c8e7cc6529787.patch) = 2c2e04d8524fb75e7758ba43742512ad66447ec0b56f28279f4679b96cd1425f
|
||||||
|
SIZE (eb6dadcf1a5c660167ba43f3606c8e7cc6529787.patch) = 1149
|
||||||
|
|
|
||||||
|
|
@ -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
|
|
||||||
|
|
||||||
|
|
@ -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
|
|
@ -1,6 +1,5 @@
|
||||||
PORTNAME= lib2geom
|
PORTNAME= lib2geom
|
||||||
DISTVERSION= 1.3
|
DISTVERSION= 1.4
|
||||||
PORTREVISION= 3
|
|
||||||
CATEGORIES= math gnome
|
CATEGORIES= math gnome
|
||||||
|
|
||||||
MAINTAINER= gnome@FreeBSD.org
|
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 \
|
TEST_DEPENDS= googletest>0:devel/googletest \
|
||||||
ragel:devel/ragel
|
ragel:devel/ragel
|
||||||
|
|
||||||
USES= cmake:testing gettext-runtime gnome localbase:ldflags pkgconfig \
|
USES= compiler:c++20-lang cmake:testing gettext-runtime gnome localbase:ldflags \
|
||||||
python
|
pkgconfig python
|
||||||
USE_GNOME= cairo glib20 gtk30
|
USE_GNOME= cairo glib20 gtk30
|
||||||
USE_PYTHON= cython cython_test
|
USE_PYTHON= cython cython_test
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
TIMESTAMP = 1692190492
|
TIMESTAMP = 1732134434
|
||||||
SHA256 (lib2geom-1.3.tar.bz2) = bd07f2a1322fcad16a55a1901207faa55dffdecebc56a00eabd4575f62e043c9
|
SHA256 (lib2geom-1.4.tar.bz2) = 717a87ce7f2192271a789c1273ae7b432856c522647b9fe33bb4dd662942b3ea
|
||||||
SIZE (lib2geom-1.3.tar.bz2) = 1275751
|
SIZE (lib2geom-1.4.tar.bz2) = 1287532
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue