git: 24ae16c5314d - main - graphics/resvg: New port: SVG rendering library

From: Yuri Victorovich <yuri_at_FreeBSD.org>
Date: Sat, 07 Jan 2023 07:57:03 UTC
The branch main has been updated by yuri:

URL: https://cgit.FreeBSD.org/ports/commit/?id=24ae16c5314d06d89bc055fb5d37bc197f38dc8a

commit 24ae16c5314d06d89bc055fb5d37bc197f38dc8a
Author:     Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2023-01-07 06:56:15 +0000
Commit:     Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2023-01-07 07:56:59 +0000

    graphics/resvg: New port: SVG rendering library
---
 graphics/Makefile        |  1 +
 graphics/resvg/Makefile  | 69 +++++++++++++++++++++++++++++++++++
 graphics/resvg/distinfo  | 93 ++++++++++++++++++++++++++++++++++++++++++++++++
 graphics/resvg/pkg-descr | 16 +++++++++
 4 files changed, 179 insertions(+)

diff --git a/graphics/Makefile b/graphics/Makefile
index a61660e7b784..732d60c9d440 100644
--- a/graphics/Makefile
+++ b/graphics/Makefile
@@ -999,6 +999,7 @@
     SUBDIR += recoverjpeg
     SUBDIR += renrot
     SUBDIR += repng2jpeg
+    SUBDIR += resvg
     SUBDIR += rgbpaint
     SUBDIR += rigsofrods-caelum
     SUBDIR += rigsofrods-pagedgeometry
diff --git a/graphics/resvg/Makefile b/graphics/resvg/Makefile
new file mode 100644
index 000000000000..ac083a91c7bd
--- /dev/null
+++ b/graphics/resvg/Makefile
@@ -0,0 +1,69 @@
+PORTNAME=	resvg
+DISTVERSIONPREFIX=	v
+DISTVERSION=	0.28.0
+CATEGORIES=	graphics
+
+MAINTAINER=	yuri@FreeBSD.org
+COMMENT=	SVG rendering library
+WWW=		https://github.com/RazrFalcon/resvg
+
+LICENSE=	MPL20
+LICENSE_FILE=	${WRKSRC}/LICENSE.txt
+
+USES=		cargo
+
+USE_GITHUB=	yes
+GH_ACCOUNT=	RazrFalcon
+
+CARGO_CRATES=	adler-1.0.2 \
+		arrayref-0.3.6 \
+		arrayvec-0.7.2 \
+		base64-0.13.1 \
+		bitflags-1.3.2 \
+		bytemuck-1.12.1 \
+		cfg-if-1.0.0 \
+		color_quant-1.1.0 \
+		crc32fast-1.3.2 \
+		data-url-0.2.0 \
+		flate2-1.0.24 \
+		float-cmp-0.9.0 \
+		fontconfig-parser-0.5.1 \
+		fontdb-0.10.0 \
+		gif-0.11.4 \
+		imagesize-0.10.1 \
+		jpeg-decoder-0.3.0 \
+		kurbo-0.8.3 \
+		libc-0.2.137 \
+		log-0.4.17 \
+		memmap2-0.5.8 \
+		miniz_oxide-0.5.4 \
+		once_cell-1.16.0 \
+		pico-args-0.5.0 \
+		png-0.17.6 \
+		rctree-0.5.0 \
+		rgb-0.8.34 \
+		roxmltree-0.15.1 \
+		rustybuzz-0.6.0 \
+		simplecss-0.2.1 \
+		siphasher-0.3.10 \
+		smallvec-1.10.0 \
+		strict-num-0.1.0 \
+		svgtypes-0.8.2 \
+		tiny-skia-0.8.2 \
+		tiny-skia-path-0.8.2 \
+		ttf-parser-0.17.1 \
+		unicode-bidi-0.3.8 \
+		unicode-bidi-mirroring-0.1.0 \
+		unicode-ccc-0.1.2 \
+		unicode-general-category-0.6.0 \
+		unicode-script-0.5.5 \
+		unicode-vo-0.1.0 \
+		weezl-0.1.7 \
+		xmlparser-0.13.5
+
+PLIST_FILES=	bin/${PORTNAME}
+
+post-install:
+	@${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/${PORTNAME}
+
+.include <bsd.port.mk>
diff --git a/graphics/resvg/distinfo b/graphics/resvg/distinfo
new file mode 100644
index 000000000000..4f108e587e92
--- /dev/null
+++ b/graphics/resvg/distinfo
@@ -0,0 +1,93 @@
+TIMESTAMP = 1673074073
+SHA256 (rust/crates/adler-1.0.2.crate) = f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe
+SIZE (rust/crates/adler-1.0.2.crate) = 12778
+SHA256 (rust/crates/arrayref-0.3.6.crate) = a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544
+SIZE (rust/crates/arrayref-0.3.6.crate) = 10035
+SHA256 (rust/crates/arrayvec-0.7.2.crate) = 8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6
+SIZE (rust/crates/arrayvec-0.7.2.crate) = 29341
+SHA256 (rust/crates/base64-0.13.1.crate) = 9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8
+SIZE (rust/crates/base64-0.13.1.crate) = 61002
+SHA256 (rust/crates/bitflags-1.3.2.crate) = bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a
+SIZE (rust/crates/bitflags-1.3.2.crate) = 23021
+SHA256 (rust/crates/bytemuck-1.12.1.crate) = 2f5715e491b5a1598fc2bef5a606847b5dc1d48ea625bd3c02c00de8285591da
+SIZE (rust/crates/bytemuck-1.12.1.crate) = 38293
+SHA256 (rust/crates/cfg-if-1.0.0.crate) = baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd
+SIZE (rust/crates/cfg-if-1.0.0.crate) = 7934
+SHA256 (rust/crates/color_quant-1.1.0.crate) = 3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b
+SIZE (rust/crates/color_quant-1.1.0.crate) = 6649
+SHA256 (rust/crates/crc32fast-1.3.2.crate) = b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d
+SIZE (rust/crates/crc32fast-1.3.2.crate) = 38661
+SHA256 (rust/crates/data-url-0.2.0.crate) = 8d7439c3735f405729d52c3fbbe4de140eaf938a1fe47d227c27f8254d4302a5
+SIZE (rust/crates/data-url-0.2.0.crate) = 20553
+SHA256 (rust/crates/flate2-1.0.24.crate) = f82b0f4c27ad9f8bfd1f3208d882da2b09c301bc1c828fd3a00d0216d2fbbff6
+SIZE (rust/crates/flate2-1.0.24.crate) = 70191
+SHA256 (rust/crates/float-cmp-0.9.0.crate) = 98de4bbd547a563b716d8dfa9aad1cb19bfab00f4fa09a6a4ed21dbcf44ce9c4
+SIZE (rust/crates/float-cmp-0.9.0.crate) = 10102
+SHA256 (rust/crates/fontconfig-parser-0.5.1.crate) = 2be17a530a842f8a7a60f4397a08e8f08872849a5e31b20c7bd7301dac483296
+SIZE (rust/crates/fontconfig-parser-0.5.1.crate) = 36687
+SHA256 (rust/crates/fontdb-0.10.0.crate) = 8131752b3f3b876a20f42b3d08233ad177d6e7ec6d18aaa6954489a201071be5
+SIZE (rust/crates/fontdb-0.10.0.crate) = 15485
+SHA256 (rust/crates/gif-0.11.4.crate) = 3edd93c6756b4dfaf2709eafcc345ba2636565295c198a9cfbf75fa5e3e00b06
+SIZE (rust/crates/gif-0.11.4.crate) = 634244
+SHA256 (rust/crates/imagesize-0.10.1.crate) = df19da1e92fbfec043ca97d622955381b1f3ee72a180ec999912df31b1ccd951
+SIZE (rust/crates/imagesize-0.10.1.crate) = 11439
+SHA256 (rust/crates/jpeg-decoder-0.3.0.crate) = bc0000e42512c92e31c2252315bda326620a4e034105e900c98ec492fa077b3e
+SIZE (rust/crates/jpeg-decoder-0.3.0.crate) = 742671
+SHA256 (rust/crates/kurbo-0.8.3.crate) = 7a53776d271cfb873b17c618af0298445c88afc52837f3e948fa3fafd131f449
+SIZE (rust/crates/kurbo-0.8.3.crate) = 81131
+SHA256 (rust/crates/libc-0.2.137.crate) = fc7fcc620a3bff7cdd7a365be3376c97191aeaccc2a603e600951e452615bf89
+SIZE (rust/crates/libc-0.2.137.crate) = 606185
+SHA256 (rust/crates/log-0.4.17.crate) = abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e
+SIZE (rust/crates/log-0.4.17.crate) = 38028
+SHA256 (rust/crates/memmap2-0.5.8.crate) = 4b182332558b18d807c4ce1ca8ca983b34c3ee32765e47b3f0f69b90355cc1dc
+SIZE (rust/crates/memmap2-0.5.8.crate) = 26592
+SHA256 (rust/crates/miniz_oxide-0.5.4.crate) = 96590ba8f175222643a85693f33d26e9c8a015f599c216509b1a6894af675d34
+SIZE (rust/crates/miniz_oxide-0.5.4.crate) = 53485
+SHA256 (rust/crates/once_cell-1.16.0.crate) = 86f0b0d4bf799edbc74508c1e8bf170ff5f41238e5f8225603ca7caaae2b7860
+SIZE (rust/crates/once_cell-1.16.0.crate) = 32120
+SHA256 (rust/crates/pico-args-0.5.0.crate) = 5be167a7af36ee22fe3115051bc51f6e6c7054c9348e28deb4f49bd6f705a315
+SIZE (rust/crates/pico-args-0.5.0.crate) = 11545
+SHA256 (rust/crates/png-0.17.6.crate) = 8f0e7f4c94ec26ff209cee506314212639d6c91b80afb82984819fafce9df01c
+SIZE (rust/crates/png-0.17.6.crate) = 80695
+SHA256 (rust/crates/rctree-0.5.0.crate) = 3b42e27ef78c35d3998403c1d26f3efd9e135d3e5121b0a4845cc5cc27547f4f
+SIZE (rust/crates/rctree-0.5.0.crate) = 8298
+SHA256 (rust/crates/rgb-0.8.34.crate) = 3603b7d71ca82644f79b5a06d1220e9a58ede60bd32255f698cb1af8838b8db3
+SIZE (rust/crates/rgb-0.8.34.crate) = 16285
+SHA256 (rust/crates/roxmltree-0.15.1.crate) = 6b9de9831a129b122e7e61f242db509fa9d0838008bf0b29bb0624669edfe48a
+SIZE (rust/crates/roxmltree-0.15.1.crate) = 39078
+SHA256 (rust/crates/rustybuzz-0.6.0.crate) = ab9e34ecf6900625412355a61bda0bd68099fe674de707c67e5e4aed2c05e489
+SIZE (rust/crates/rustybuzz-0.6.0.crate) = 219599
+SHA256 (rust/crates/simplecss-0.2.1.crate) = a11be7c62927d9427e9f40f3444d5499d868648e2edbc4e2116de69e7ec0e89d
+SIZE (rust/crates/simplecss-0.2.1.crate) = 19418
+SHA256 (rust/crates/siphasher-0.3.10.crate) = 7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de
+SIZE (rust/crates/siphasher-0.3.10.crate) = 9889
+SHA256 (rust/crates/smallvec-1.10.0.crate) = a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0
+SIZE (rust/crates/smallvec-1.10.0.crate) = 31564
+SHA256 (rust/crates/strict-num-0.1.0.crate) = 9df65f20698aeed245efdde3628a6b559ea1239bbb871af1b6e3b58c413b2bd1
+SIZE (rust/crates/strict-num-0.1.0.crate) = 4692
+SHA256 (rust/crates/svgtypes-0.8.2.crate) = 22975e8a2bac6a76bb54f898a6b18764633b00e780330f0b689f65afb3975564
+SIZE (rust/crates/svgtypes-0.8.2.crate) = 32694
+SHA256 (rust/crates/tiny-skia-0.8.2.crate) = 0ae12c22601b6853f4d93abb178e13bf0e1cc8e2454100c85d4d3a59ac71b3f7
+SIZE (rust/crates/tiny-skia-0.8.2.crate) = 192697
+SHA256 (rust/crates/tiny-skia-path-0.8.2.crate) = bd665853ce64402daabef6edda442dbb4f8ee93ea80957b66ba1af419f11a104
+SIZE (rust/crates/tiny-skia-path-0.8.2.crate) = 45813
+SHA256 (rust/crates/ttf-parser-0.17.1.crate) = 375812fa44dab6df41c195cd2f7fecb488f6c09fbaafb62807488cefab642bff
+SIZE (rust/crates/ttf-parser-0.17.1.crate) = 150772
+SHA256 (rust/crates/unicode-bidi-0.3.8.crate) = 099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992
+SIZE (rust/crates/unicode-bidi-0.3.8.crate) = 36575
+SHA256 (rust/crates/unicode-bidi-mirroring-0.1.0.crate) = 56d12260fb92d52f9008be7e4bca09f584780eb2266dc8fecc6a192bec561694
+SIZE (rust/crates/unicode-bidi-mirroring-0.1.0.crate) = 8241
+SHA256 (rust/crates/unicode-ccc-0.1.2.crate) = cc2520efa644f8268dce4dcd3050eaa7fc044fca03961e9998ac7e2e92b77cf1
+SIZE (rust/crates/unicode-ccc-0.1.2.crate) = 8848
+SHA256 (rust/crates/unicode-general-category-0.6.0.crate) = 2281c8c1d221438e373249e065ca4989c4c36952c211ff21a0ee91c44a3869e7
+SIZE (rust/crates/unicode-general-category-0.6.0.crate) = 35177
+SHA256 (rust/crates/unicode-script-0.5.5.crate) = 7d817255e1bed6dfd4ca47258685d14d2bdcfbc64fdc9e3819bd5848057b8ecc
+SIZE (rust/crates/unicode-script-0.5.5.crate) = 43874
+SHA256 (rust/crates/unicode-vo-0.1.0.crate) = b1d386ff53b415b7fe27b50bb44679e2cc4660272694b7b6f3326d8480823a94
+SIZE (rust/crates/unicode-vo-0.1.0.crate) = 8084
+SHA256 (rust/crates/weezl-0.1.7.crate) = 9193164d4de03a926d909d3bc7c30543cecb35400c02114792c2cae20d5e2dbb
+SIZE (rust/crates/weezl-0.1.7.crate) = 42166
+SHA256 (rust/crates/xmlparser-0.13.5.crate) = 4d25c75bf9ea12c4040a97f829154768bbbce366287e2dc044af160cd79a13fd
+SIZE (rust/crates/xmlparser-0.13.5.crate) = 26225
+SHA256 (RazrFalcon-resvg-v0.28.0_GH0.tar.gz) = 26bbc03c79da0c9236153cca0da206047ef3632fd82c43469333c580fea30361
+SIZE (RazrFalcon-resvg-v0.28.0_GH0.tar.gz) = 8047908
diff --git a/graphics/resvg/pkg-descr b/graphics/resvg/pkg-descr
new file mode 100644
index 000000000000..e460468e497a
--- /dev/null
+++ b/graphics/resvg/pkg-descr
@@ -0,0 +1,16 @@
+resvg is an SVG rendering library.
+
+It can be used as a Rust library, as a C library, and as a CLI
+application to render static SVG files.
+
+The core idea is to make a fast, small, portable SVG library with the goal to
+support the whole SVG spec.
+
+Features:
+* Designed for edge-cases
+* Safety
+* Zero bloat
+* Portable
+* SVG preprocessing
+* Performance
+* Reproducibility