svn commit: r422468 - in head/audio/libmusicbrainz5: . files

Jason E. Hale jhale at FreeBSD.org
Mon Sep 19 23:19:01 UTC 2016


Author: jhale
Date: Mon Sep 19 23:18:59 2016
New Revision: 422468
URL: https://svnweb.freebsd.org/changeset/ports/422468

Log:
  Add visibility to C++ exceptions to prevent crashes with applications
  using libkcddb.
  
  PR:	211630
  Submitted by:	Adriaan de Groot <groot at kde.org>

Added:
  head/audio/libmusicbrainz5/files/patch-musicbrainz5-httpfetch-h.patch   (contents, props changed)
Modified:
  head/audio/libmusicbrainz5/Makefile

Modified: head/audio/libmusicbrainz5/Makefile
==============================================================================
--- head/audio/libmusicbrainz5/Makefile	Mon Sep 19 22:53:55 2016	(r422467)
+++ head/audio/libmusicbrainz5/Makefile	Mon Sep 19 23:18:59 2016	(r422468)
@@ -2,6 +2,7 @@
 
 PORTNAME=	libmusicbrainz
 PORTVERSION=	5.1.0
+PORTREVISION=	1
 DISTVERSIONPREFIX=	release-
 CATEGORIES=	audio
 PKGNAMESUFFIX=	5

Added: head/audio/libmusicbrainz5/files/patch-musicbrainz5-httpfetch-h.patch
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/audio/libmusicbrainz5/files/patch-musicbrainz5-httpfetch-h.patch	Mon Sep 19 23:18:59 2016	(r422468)
@@ -0,0 +1,81 @@
+--- include/musicbrainz5/HTTPFetch.h.orig	2016-08-06 17:10:23.956575000 +0200
++++ include/musicbrainz5/HTTPFetch.h	2016-08-06 17:26:10.934640000 +0200
+@@ -29,11 +29,23 @@
+ #include <string>
+ #include <vector>
+ 
++// Visibility patch derived from https://gcc.gnu.org/wiki/Visibility ,
++// extended for clang support.
++#if (__clang__) || (__GNUC__ >= 4)
++	#define DLL_PUBLIC __attribute__ ((visibility ("default")))
++	#define DLL_LOCAL  __attribute__ ((visibility ("hidden")))
++#else
++	#define DLL_PUBLIC
++	#define DLL_LOCAL
++#endif
++
++
++
+ namespace MusicBrainz5
+ {
+ 	class CHTTPFetchPrivate;
+ 
+-	class CExceptionBase: public std::exception
++	class DLL_PUBLIC CExceptionBase: public std::exception
+ 	{
+ 	public:
+ 		CExceptionBase(const std::string& ErrorMessage, const std::string& Exception)
+@@ -60,7 +72,7 @@
+ 	 * Exception thrown when an error occurs connecting to web service
+ 	 */
+ 
+-	class CConnectionError: public CExceptionBase
++	class DLL_PUBLIC CConnectionError: public CExceptionBase
+ 	{
+ 	public:
+ 			CConnectionError(const std::string& ErrorMessage)
+@@ -73,7 +85,7 @@
+ 	 * Exception thrown when a connection to the web service times out
+ 	 */
+ 
+-	class CTimeoutError: public CExceptionBase
++	class DLL_PUBLIC CTimeoutError: public CExceptionBase
+ 	{
+ 	public:
+ 			CTimeoutError(const std::string& ErrorMessage)
+@@ -86,7 +98,7 @@
+ 	 * Exception thrown when an authentication error occurs
+ 	 */
+ 
+-	class CAuthenticationError: public CExceptionBase
++	class DLL_PUBLIC CAuthenticationError: public CExceptionBase
+ 	{
+ 	public:
+ 			CAuthenticationError(const std::string& ErrorMessage)
+@@ -99,7 +111,7 @@
+ 	 * Exception thrown when an error occurs fetching data
+ 	 */
+ 
+-	class CFetchError: public CExceptionBase
++	class DLL_PUBLIC CFetchError: public CExceptionBase
+ 	{
+ 	public:
+ 			CFetchError(const std::string& ErrorMessage)
+@@ -112,7 +124,7 @@
+ 	 * Exception thrown when an invalid request is made
+ 	 */
+ 
+-	class CRequestError: public CExceptionBase
++	class DLL_PUBLIC CRequestError: public CExceptionBase
+ 	{
+ 	public:
+ 			CRequestError(const std::string& ErrorMessage)
+@@ -125,7 +137,7 @@
+ 	 * Exception thrown when the requested resource is not found
+ 	 */
+ 
+-	class CResourceNotFoundError: public CExceptionBase
++	class DLL_PUBLIC CResourceNotFoundError: public CExceptionBase
+ 	{
+ 	public:
+ 			CResourceNotFoundError(const std::string& ErrorMessage)


More information about the svn-ports-head mailing list