View | Details | Raw Unified | Return to bug 272311 | Differences between
and this patch

Collapse All | Expand All

(-)b/graphics/exiv2/Makefile (-30 / +41 lines)
Lines 1-10 Link Here
1
PORTNAME=	exiv2
1
PORTNAME=	exiv2
2
DISTVERSION=	0.27.6
2
DISTVERSION=	0.28.0
3
DISTVERSIONSUFFIX=	-Source
3
DISTVERSIONSUFFIX=	-Source
4
PORTEPOCH=	1
4
PORTEPOCH=	1
5
CATEGORIES=	graphics
5
CATEGORIES=	graphics
6
MASTER_SITES=	https://github.com/Exiv2/exiv2/releases/download/v${DISTVERSION}/
6
MASTER_SITES=	https://github.com/Exiv2/exiv2/releases/download/v${DISTVERSION}/
7
7
8
# https://git.alpinelinux.org/aports/log/community/exiv2
9
# https://github.com/Exiv2/exiv2/compare/v0.28.0...0.28.x
10
PATCH_SITES=	https://github.com/Exiv2/exiv2/commit/
11
PATCHFILES=	16c1cd7da0cd159ee2d53c39088564edaf046c77.patch:-p1 \
12
		2876c8c5f70f71b5b51b0f26b31dd0dc08583212.patch:-p1 \
13
		3664f5b826f5688b82470235d1dceef0c9c4c47d.patch:-p1 \
14
		b4f435a4ecceba0ef3a785dbe8eead6f55f49cc1.patch:-p1 \
15
		c5c4a54d4cf4ea544c30fe6780dab2755f404300.patch:-p1 \
16
		f47e7bd666aa063d016bdf00ea8f62c97a5b5a7a.patch:-p1
17
8
MAINTAINER=	multimedia@FreeBSD.org
18
MAINTAINER=	multimedia@FreeBSD.org
9
COMMENT=	Exif, IPTC, and XMP metadata manipulation library and tools
19
COMMENT=	Exif, IPTC, and XMP metadata manipulation library and tools
10
WWW=		https://www.exiv2.org/
20
WWW=		https://www.exiv2.org/
Lines 12-58 WWW= https://www.exiv2.org/ Link Here
12
LICENSE=	GPLv2+
22
LICENSE=	GPLv2+
13
LICENSE_FILE=	${WRKSRC}/COPYING
23
LICENSE_FILE=	${WRKSRC}/COPYING
14
24
15
LIB_DEPENDS=	libexpat.so:textproc/expat2
25
LIB_DEPENDS=	libbrotlidec.so:archivers/brotli \
16
TEST_DEPENDS=	bash:shells/bash
26
		libexpat.so:textproc/expat2 \
17
TEST_LIB_DEPENDS=	libgtest.so:devel/googletest
27
		libinih.so:devel/inih \
28
		libpng.so:graphics/png
18
29
19
USES=		cmake compiler:c++11-lang cpe dos2unix gettext-tools pathfix \
30
USES=		cmake compiler:c++17-lang cpe dos2unix gettext-tools iconv \
20
		python:test localbase:ldflags
31
		localbase:ldflags pathfix shebangfix
21
USE_LDCONFIG=	yes
22
DOS2UNIX_FILES=	cmake/compilerFlags.cmake
32
DOS2UNIX_FILES=	cmake/compilerFlags.cmake
33
USE_LDCONFIG=	yes
34
SHEBANG_FILES=	fuzz/mkdictionary.py tests/runner.py
23
35
24
TEST_TARGET=	tests
36
CMAKE_ARGS=	-DPython${PYTHON_MAJOR_VER}_EXECUTABLE:FILEPATH="${PYTHON_CMD}"
25
37
26
CMAKE_ON=	EXIV2_ENABLE_VIDEO
38
CMAKE_ON=	EXIV2_ENABLE_VIDEO
27
CMAKE_OFF=	EXIV2_ENABLE_LIBXMP
39
CMAKE_OFF=	EXIV2_ENABLE_EXTERNAL_XMP
28
40
29
OPTIONS_DEFINE=	NLS SAMPLE TEST
41
LDFLAGS_mips=	-lintl
30
OPTIONS_SUB=	yes
42
LDFLAGS_mips64=	-lintl
31
TEST_IMPLIES=	SAMPLE
32
43
33
NLS_CMAKE_BOOL=	EXIV2_ENABLE_NLS
44
WRKSRC=		${WRKDIR}/${PORTNAME}-${DISTVERSION}-Source
34
NLS_USES=	gettext-runtime
35
36
SAMPLE_DESC=	Include sample applications
37
SAMPLE_CMAKE_BOOL=	EXIV2_BUILD_SAMPLES
38
45
39
TEST_CMAKE_BOOL=	EXIV2_BUILD_UNIT_TESTS
46
OPTIONS_DEFINE=	DOCS DOXYGEN NLS SAMPLE TEST
47
OPTIONS_SUB=	yes
40
48
41
PATHFIX_CMAKELISTSTXT=	CMakeChecks.txt
49
SAMPLE_DESC=	Include sample applications
42
50
43
WRKSRC=		${WRKDIR}/${PORTNAME}-${PORTVERSION}-Source
51
DOXYGEN_BUILD_DEPENDS=	dot:graphics/graphviz \
52
			doxygen:devel/doxygen
53
DOXYGEN_CMAKE_BOOL=	EXIV2_BUILD_DOC
54
DOXYGEN_ALL_TARGET=	all doc
55
DOXYGEN_PORTDOCS=	*
44
56
45
.include <bsd.port.options.mk>
57
NLS_USES=	gettext-runtime
58
NLS_CMAKE_BOOL=	EXIV2_ENABLE_NLS
46
59
47
LDFLAGS_mips=		-lintl
60
SAMPLE_CMAKE_BOOL=	EXIV2_BUILD_SAMPLES
48
LDFLAGS_mips64=		-lintl
49
61
50
post-patch:
62
TEST_IMPLIES=		SAMPLE
51
	@${REINPLACE_CMD} -e 's|python3|${PYTHON_CMD}|' \
63
TEST_LIB_DEPENDS=	libgtest.so:devel/googletest
52
		${WRKSRC}/CMakeLists.txt
64
TEST_TEST_DEPENDS=	bash:shells/bash
53
	@${REINPLACE_CMD} -e 's|python3|${PYTHON_CMD}|' \
65
TEST_USES=		python:build,test
54
		${WRKSRC}/test/Makefile
66
TEST_CMAKE_BOOL=	EXIV2_BUILD_UNIT_TESTS
55
	@${REINPLACE_CMD} -e 's|python3|${PYTHON_CMD}|' \
67
TEST_TEST_TARGET=	test
56
		${WRKSRC}/test/functions.source
57
68
58
.include <bsd.port.mk>
69
.include <bsd.port.mk>
(-)b/graphics/exiv2/distinfo (-3 / +15 lines)
Lines 1-3 Link Here
1
TIMESTAMP = 1674215187
1
TIMESTAMP = 1688222531
2
SHA256 (exiv2-0.27.6-Source.tar.gz) = 4c192483a1125dc59a3d70b30d30d32edace9e14adf52802d2f853abf72db8a6
2
SHA256 (exiv2-0.28.0-Source.tar.gz) = 89af3b5ef7277753ef7a7b5374ae017c6b9e304db3b688f1948e73e103491f3d
3
SIZE (exiv2-0.27.6-Source.tar.gz) = 32280263
3
SIZE (exiv2-0.28.0-Source.tar.gz) = 44893310
4
SHA256 (16c1cd7da0cd159ee2d53c39088564edaf046c77.patch) = 04cc88ba5e575fef02545022a8f862dadc16752e21d9bbfdbc3788b86992821b
5
SIZE (16c1cd7da0cd159ee2d53c39088564edaf046c77.patch) = 4997
6
SHA256 (2876c8c5f70f71b5b51b0f26b31dd0dc08583212.patch) = f05ab7b3355ae6d5346f6bbd9d0fc9d8db26b04943f27b0f851ac5ad13561a41
7
SIZE (2876c8c5f70f71b5b51b0f26b31dd0dc08583212.patch) = 2269
8
SHA256 (3664f5b826f5688b82470235d1dceef0c9c4c47d.patch) = 6b725a884c8bc225b0bda6a907a39e2238fe0cee4800f7852d18377e66aad2a3
9
SIZE (3664f5b826f5688b82470235d1dceef0c9c4c47d.patch) = 12997
10
SHA256 (b4f435a4ecceba0ef3a785dbe8eead6f55f49cc1.patch) = e3b0dce84cdacbdbb24c6c39772f6cdbba7e3e3101be540d7695d3d981c810e5
11
SIZE (b4f435a4ecceba0ef3a785dbe8eead6f55f49cc1.patch) = 755
12
SHA256 (c5c4a54d4cf4ea544c30fe6780dab2755f404300.patch) = ef9789c846982e6d15ef47f53f25c42229e7d2eb135ac9fa5e0e09e7da0e0d91
13
SIZE (c5c4a54d4cf4ea544c30fe6780dab2755f404300.patch) = 778
14
SHA256 (f47e7bd666aa063d016bdf00ea8f62c97a5b5a7a.patch) = f96c50432d45adf30bffbb21ebfda30c1ffeae08ce3a603eacda1befb9240fb8
15
SIZE (f47e7bd666aa063d016bdf00ea8f62c97a5b5a7a.patch) = 1127
(-)b/graphics/exiv2/files/patch-_MSVC_LANG-warning-Wundef (+84 lines)
Added Link Here
1
From aaa876159ada768ba0fb2d44b4eaaf23b3b2ed98 Mon Sep 17 00:00:00 2001
2
From: Matthias Andree <matthias.andree@gmx.de>
3
Date: Mon, 3 Jul 2023 11:16:44 +0200
4
Subject: [PATCH] Fix preprocessor warnings about undefined _MSVC_LANG
5
6
Stricter compiler/settings, such as found during a build
7
on FreeBSD with clang 14, issue warnings of the kind below.
8
9
/usr/local/include/exiv2/value.hpp:1272:31: warning: '_MSVC_LANG' is not defined, evaluates to 0 [-Wundef]
10
fixed-width font helps here-- ^
11
12
Fix: Guard use of _MSVC_LANG by a check.
13
14
Personally, I found that MSVC has several feature-specific
15
checks in predefined macros which might allow for one
16
standards-based check that matches GCC/clang/MSVC rather than the
17
split check for C++ standard and MSVC language version settings.
18
19
See https://en.cppreference.com/w/cpp/feature_test
20
21
I am not building Exiv2 on MSVC, so I cannot test/suggest
22
anything here.
23
--- include/exiv2/slice.hpp.orig	2023-05-08 16:01:13 UTC
24
+++ include/exiv2/slice.hpp
25
@@ -255,7 +255,7 @@ struct ContainerStorage {
26
   using iterator = typename container::iterator;
27
   using const_iterator = typename container::const_iterator;
28
 
29
-#if __cplusplus >= 201402L || _MSVC_LANG >= 201402L
30
+#if __cplusplus >= 201402L || (defined(_MSVC_LANG) && (_MSVC_LANG >= 201402L))
31
   using value_type = std::remove_cv_t<typename container::value_type>;
32
 #else
33
   using value_type = typename std::remove_cv<typename container::value_type>::type;
34
@@ -320,7 +320,7 @@ struct ContainerStorage {
35
  */
36
 template <typename storage_type>
37
 struct PtrSliceStorage {
38
-#if __cplusplus >= 201402L || _MSVC_LANG >= 201402L
39
+#if __cplusplus >= 201402L || (defined(_MSVC_LANG) && (_MSVC_LANG >= 201402L))
40
   using value_type = std::remove_cv_t<std::remove_pointer_t<storage_type>>;
41
 #else
42
   using value_type = typename std::remove_cv<typename std::remove_pointer<storage_type>::type>::type;
43
@@ -423,7 +423,7 @@ struct Slice : public Internal::MutableSliceBase<Inter
44
   using iterator = typename container::iterator;
45
   using const_iterator = typename container::const_iterator;
46
 
47
-#if __cplusplus >= 201402L || _MSVC_LANG >= 201402L
48
+#if __cplusplus >= 201402L || (defined(_MSVC_LANG) && (_MSVC_LANG >= 201402L))
49
   using value_type = std::remove_cv_t<typename container::value_type>;
50
 #else
51
   using value_type = typename std::remove_cv<typename container::value_type>::type;
52
@@ -460,7 +460,7 @@ struct Slice<const container> : public Internal::Const
53
   using iterator = typename container::iterator;
54
   using const_iterator = typename container::const_iterator;
55
 
56
-#if __cplusplus >= 201402L || _MSVC_LANG >= 201402L
57
+#if __cplusplus >= 201402L || (defined(_MSVC_LANG) && (_MSVC_LANG >= 201402L))
58
   using value_type = std::remove_cv_t<typename container::value_type>;
59
 #else
60
   using value_type = typename std::remove_cv<typename container::value_type>::type;
61
 include/exiv2/slice.hpp | 8 ++++----
62
 include/exiv2/value.hpp | 4 ++--
63
 2 files changed, 6 insertions(+), 6 deletions(-)
64
65
--- include/exiv2/value.hpp.orig	2023-05-08 16:01:13 UTC
66
+++ include/exiv2/value.hpp
67
@@ -1254,7 +1254,7 @@ class ValueType : public Value {
68
     } else if (std::is_signed<I>::value) {
69
 #endif
70
       // conversion is from unsigned to signed
71
-#if __cplusplus >= 201402L || _MSVC_LANG >= 201402L
72
+#if __cplusplus >= 201402L || (defined(_MSVC_LANG) && (_MSVC_LANG >= 201402L))
73
       const auto imax = static_cast<std::make_unsigned_t<I>>(std::numeric_limits<I>::max());
74
 #else
75
       const auto imax = static_cast<typename std::make_unsigned<I>::type>(std::numeric_limits<I>::max());
76
@@ -1269,7 +1269,7 @@ class ValueType : public Value {
77
         return 0;
78
       }
79
       // Inputs are not negative so convert them to unsigned.
80
-#if __cplusplus >= 201402L || _MSVC_LANG >= 201402L
81
+#if __cplusplus >= 201402L || (defined(_MSVC_LANG) && (_MSVC_LANG >= 201402L))
82
       const auto a_u = static_cast<std::make_unsigned_t<decltype(a)>>(a);
83
       const auto b_u = static_cast<std::make_unsigned_t<decltype(b)>>(b);
84
 #else
(-)b/graphics/exiv2/files/patch-cmake_mainSetup.cmake (-2 / +2 lines)
Lines 1-6 Link Here
1
--- cmake/mainSetup.cmake.orig	2019-07-13 09:31:40 UTC
1
--- cmake/mainSetup.cmake.orig	2023-05-08 16:01:13 UTC
2
+++ cmake/mainSetup.cmake
2
+++ cmake/mainSetup.cmake
3
@@ -13,7 +13,7 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}
3
@@ -17,7 +17,7 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}
4
 set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
4
 set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
5
 set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
5
 set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
6
 
6
 
(-)b/graphics/exiv2/files/patch-src_version.cpp (+16 lines)
Added Link Here
1
This patch fixes a crash when the procstat_getfiles()
2
return list contains non-vnodes that don't have an fs_path.
3
4
filed as https://github.com/Exiv2/exiv2/pull/2672
5
6
--- src/version.cpp.orig	2023-05-08 16:01:13 UTC
7
+++ src/version.cpp
8
@@ -148,7 +148,7 @@ static std::vector<std::string> getLoadedLibraries() {
9
     struct filestat_list* files = procs ? procstat_getfiles(procstat, procs, true) : nullptr;
10
     if (files) {
11
       filestat* entry;
12
-      STAILQ_FOREACH(entry, files, next) {
13
+      STAILQ_FOREACH(entry, files, next) if (entry && PS_FST_TYPE_VNODE == entry->fs_type && entry->fs_path) {
14
         std::string path(entry->fs_path);
15
         pushPath(path, libs, paths);
16
       }
(-)b/graphics/exiv2/files/patch-xmpsdk_src_XMPMeta.cpp (+15 lines)
Added Link Here
1
XMP code is not dealing with format types properly. Cast argument to match format string.
2
3
filed as https://github.com/Exiv2/exiv2/pull/2671
4
5
--- xmpsdk/src/XMPMeta.cpp.orig	2023-05-08 16:01:13 UTC
6
+++ xmpsdk/src/XMPMeta.cpp
7
@@ -87,7 +87,7 @@ static const char * kTenSpaces = "          ";
8
 #define OutProcHexInt(num)	{ snprintf ( buffer, sizeof(buffer), "%X", (num) ); /* AUDIT: Using sizeof for snprintf length is safe */	\
9
 							  status = (*outProc) ( refCon, buffer, strlen(buffer) );  if ( status != 0 ) goto EXIT; }
10
 #else
11
-#define OutProcHexInt(num)	{ snprintf ( buffer, sizeof(buffer), "%lX", (num) ); /* AUDIT: Using sizeof for snprintf length is safe */	\
12
+#define OutProcHexInt(num)	{ snprintf ( buffer, sizeof(buffer), "%lX", (long)(num) ); /* AUDIT: Using sizeof for snprintf length is safe */	\
13
 							  status = (*outProc) ( refCon, buffer, strlen(buffer) );  if ( status != 0 ) goto EXIT; }
14
 #endif
15
 
(-)b/graphics/exiv2/files/patch-xmpsdk_src_XMPUtils.cpp (+17 lines)
Added Link Here
1
XMP code is not dealing with format types properly.
2
Provide a variable that matches the format string to
3
avoid crashes when sizeof(long long) != sizeof(XMP_Int64).
4
5
filed as https://github.com/Exiv2/exiv2/pull/2671
6
7
--- xmpsdk/src/XMPUtils.cpp.orig	2023-05-08 16:01:13 UTC
8
+++ xmpsdk/src/XMPUtils.cpp
9
@@ -1215,7 +1215,7 @@ XMPUtils::ConvertToInt64 ( XMP_StringPtr strValue )
10
 
11
 	int count;
12
 	char nextCh;
13
-	XMP_Int64 result;
14
+	long long result;
15
 
16
 	if ( ! XMP_LitNMatch ( strValue, "0x", 2 ) ) {
17
 		count = sscanf ( strValue, "%lld%c", &result, &nextCh );
(-)b/graphics/exiv2/pkg-plist (-9 / +4 lines)
Lines 4-10 Link Here
4
%%SAMPLE%%bin/exifprint
4
%%SAMPLE%%bin/exifprint
5
%%SAMPLE%%bin/exifvalue
5
%%SAMPLE%%bin/exifvalue
6
bin/exiv2
6
bin/exiv2
7
%%SAMPLE%%bin/exiv2json
8
%%SAMPLE%%bin/geotag
7
%%SAMPLE%%bin/geotag
9
%%SAMPLE%%bin/iptceasy
8
%%SAMPLE%%bin/iptceasy
10
%%SAMPLE%%bin/iptcprint
9
%%SAMPLE%%bin/iptcprint
Lines 35-41 include/exiv2/futils.hpp Link Here
35
include/exiv2/gifimage.hpp
34
include/exiv2/gifimage.hpp
36
include/exiv2/http.hpp
35
include/exiv2/http.hpp
37
include/exiv2/image.hpp
36
include/exiv2/image.hpp
38
include/exiv2/ini.hpp
37
include/exiv2/image_types.hpp
39
include/exiv2/iptc.hpp
38
include/exiv2/iptc.hpp
40
include/exiv2/jp2image.hpp
39
include/exiv2/jp2image.hpp
41
include/exiv2/jpgimage.hpp
40
include/exiv2/jpgimage.hpp
Lines 44-49 include/exiv2/metadatum.hpp Link Here
44
include/exiv2/mrwimage.hpp
43
include/exiv2/mrwimage.hpp
45
include/exiv2/orfimage.hpp
44
include/exiv2/orfimage.hpp
46
include/exiv2/pgfimage.hpp
45
include/exiv2/pgfimage.hpp
46
include/exiv2/photoshop.hpp
47
include/exiv2/pngimage.hpp
47
include/exiv2/pngimage.hpp
48
include/exiv2/preview.hpp
48
include/exiv2/preview.hpp
49
include/exiv2/properties.hpp
49
include/exiv2/properties.hpp
Lines 52-65 include/exiv2/quicktimevideo.hpp Link Here
52
include/exiv2/rafimage.hpp
52
include/exiv2/rafimage.hpp
53
include/exiv2/riffvideo.hpp
53
include/exiv2/riffvideo.hpp
54
include/exiv2/rw2image.hpp
54
include/exiv2/rw2image.hpp
55
include/exiv2/rwlock.hpp
56
include/exiv2/slice.hpp
55
include/exiv2/slice.hpp
57
include/exiv2/ssh.hpp
58
include/exiv2/tags.hpp
56
include/exiv2/tags.hpp
59
include/exiv2/tgaimage.hpp
57
include/exiv2/tgaimage.hpp
60
include/exiv2/tiffimage.hpp
58
include/exiv2/tiffimage.hpp
61
include/exiv2/types.hpp
59
include/exiv2/types.hpp
62
include/exiv2/utilsvideo.hpp
63
include/exiv2/value.hpp
60
include/exiv2/value.hpp
64
include/exiv2/version.hpp
61
include/exiv2/version.hpp
65
include/exiv2/webpimage.hpp
62
include/exiv2/webpimage.hpp
Lines 69-77 lib/cmake/exiv2/exiv2Config-%%CMAKE_BUILD_TYPE%%.cmake Link Here
69
lib/cmake/exiv2/exiv2Config.cmake
66
lib/cmake/exiv2/exiv2Config.cmake
70
lib/cmake/exiv2/exiv2ConfigVersion.cmake
67
lib/cmake/exiv2/exiv2ConfigVersion.cmake
71
lib/libexiv2.so
68
lib/libexiv2.so
72
lib/libexiv2.so.0.27.6
69
lib/libexiv2.so.0.28.0
73
lib/libexiv2.so.27
70
lib/libexiv2.so.28
74
lib/libexiv2-xmp.a
75
libdata/pkgconfig/exiv2.pc
71
libdata/pkgconfig/exiv2.pc
76
share/man/man1/exiv2.1.gz
72
share/man/man1/exiv2.1.gz
77
%%NLS%%share/locale/bs/LC_MESSAGES/exiv2.mo
73
%%NLS%%share/locale/bs/LC_MESSAGES/exiv2.mo
78
- 

Return to bug 272311