Mon Apr 18 18:13:55 2022 UTC ()
musicpd: Fix build on illumos.


(nia)
diff -r1.259 -r1.260 pkgsrc/audio/musicpd/Makefile
diff -r1.134 -r1.135 pkgsrc/audio/musicpd/distinfo
diff -r0 -r1.1 pkgsrc/audio/musicpd/patches/patch-src_util_WStringAPI.hxx

cvs diff -r1.259 -r1.260 pkgsrc/audio/musicpd/Makefile (switch to unified diff)

--- pkgsrc/audio/musicpd/Makefile 2022/03/28 10:43:37 1.259
+++ pkgsrc/audio/musicpd/Makefile 2022/04/18 18:13:55 1.260
@@ -1,140 +1,141 @@ @@ -1,140 +1,141 @@
1# $NetBSD: Makefile,v 1.259 2022/03/28 10:43:37 tnn Exp $ 1# $NetBSD: Makefile,v 1.260 2022/04/18 18:13:55 nia Exp $
2 2
3DISTNAME= mpd-0.23.6 3DISTNAME= mpd-0.23.6
4PKGNAME= ${DISTNAME:S/mpd/musicpd/} 4PKGNAME= ${DISTNAME:S/mpd/musicpd/}
5PKGREVISION= 1 5PKGREVISION= 1
6CATEGORIES= audio 6CATEGORIES= audio
7MASTER_SITES= https://www.musicpd.org/download/mpd/${PKGVERSION_NOREV:R}/ 7MASTER_SITES= https://www.musicpd.org/download/mpd/${PKGVERSION_NOREV:R}/
8EXTRACT_SUFX= .tar.xz 8EXTRACT_SUFX= .tar.xz
9 9
10MAINTAINER= pkgsrc-users@NetBSD.org 10MAINTAINER= pkgsrc-users@NetBSD.org
11HOMEPAGE= https://www.musicpd.org/ 11HOMEPAGE= https://www.musicpd.org/
12COMMENT= Remote controllable audio player 12COMMENT= Remote controllable audio player
13LICENSE= gnu-gpl-v2 13LICENSE= gnu-gpl-v2
14 14
15CONFLICTS= mpd-[0-9]* 15CONFLICTS= mpd-[0-9]*
16 16
17USE_TOOLS+= pkg-config 17USE_TOOLS+= pkg-config
18USE_LANGUAGES= c c++ 18USE_LANGUAGES= c c++
19 19
20# The upstream changelog recommends gcc8, but it compiles fine with 7.5.0 20# The upstream changelog recommends gcc8, but it compiles fine with 7.5.0
21# (NetBSD 9.1) using -std=c++17. 21# (NetBSD 9.1) using -std=c++17.
22# 22#
23# Please be cautious of raising this requirement - mpd seems to adopt new C++ 23# Please be cautious of raising this requirement - mpd seems to adopt new C++
24# standards quickly. Notably, gcc8 from pkgsrc doesn't have support for 24# standards quickly. Notably, gcc8 from pkgsrc doesn't have support for
25# NetBSD/earmv7hf. gcc10 should, but fails for other reasons (TODO: 25# NetBSD/earmv7hf. gcc10 should, but fails for other reasons (TODO:
26# investigate). 26# investigate).
27GCC_REQD+= 7 27GCC_REQD+= 7
28 28
29MESON_ARGS+= -Ddocumentation=enabled 29MESON_ARGS+= -Ddocumentation=enabled
30 30
31# worrying libraries with limited maintainance: 31# worrying libraries with limited maintainance:
32# - audiofile, many CVEs, no activity since 2016 32# - audiofile, many CVEs, no activity since 2016
33# using sndfile instead 33# using sndfile instead
34# - mad, no release since 2004 34# - mad, no release since 2004
35# using mpg123 instead 35# using mpg123 instead
36MESON_ARGS+= -Dmad=disabled 36MESON_ARGS+= -Dmad=disabled
37MESON_ARGS+= -Daudiofile=disabled 37MESON_ARGS+= -Daudiofile=disabled
38 38
39# not available in pkgsrc? 39# not available in pkgsrc?
40MESON_ARGS+= -Dnfs=disabled 40MESON_ARGS+= -Dnfs=disabled
41MESON_ARGS+= -Diso9660=disabled 41MESON_ARGS+= -Diso9660=disabled
42MESON_ARGS+= -Dsndio=disabled 42MESON_ARGS+= -Dsndio=disabled
43 43
44.include "../../mk/bsd.prefs.mk" 44.include "../../mk/bsd.prefs.mk"
45 45
46.if ${OPSYS} == "NetBSD" || ${OPSYS} == "SunOS" 46.if ${OPSYS} == "NetBSD" || ${OPSYS} == "SunOS"
47MESON_ARGS+= -Dsolaris_output=enabled 47MESON_ARGS+= -Dsolaris_output=enabled
48.endif 48.endif
49 49
50MPD_USER?= mpd 50MPD_USER?= mpd
51MPD_GROUP?= mpd 51MPD_GROUP?= mpd
52PKG_GROUPS= ${MPD_GROUP} 52PKG_GROUPS= ${MPD_GROUP}
53PKG_USERS= ${MPD_USER}:${MPD_GROUP} 53PKG_USERS= ${MPD_USER}:${MPD_GROUP}
54PKG_GROUPS_VARS= MPD_USER 54PKG_GROUPS_VARS= MPD_USER
55PKG_USERS_VARS= MPD_GROUP 55PKG_USERS_VARS= MPD_GROUP
56 56
57.include "../../mk/oss.buildlink3.mk" 57.include "../../mk/oss.buildlink3.mk"
58 58
59.if ${OSS_TYPE} == "none" 59.if ${OSS_TYPE} == "none"
60MESON_ARGS+= -Doss=disabled 60MESON_ARGS+= -Doss=disabled
61.else 61.else
62MESON_ARGS+= -Doss=enabled 62MESON_ARGS+= -Doss=enabled
63LDFLAGS+= ${LIBOSSAUDIO} 63LDFLAGS+= ${LIBOSSAUDIO}
64SUBST_CLASSES+= oss 64SUBST_CLASSES+= oss
65SUBST_STAGE.oss= pre-configure 65SUBST_STAGE.oss= pre-configure
66SUBST_MESSAGE.oss= Correcting the path to the OSS device. 66SUBST_MESSAGE.oss= Correcting the path to the OSS device.
67SUBST_FILES.oss+= src/output/plugins/OssOutputPlugin.cxx 67SUBST_FILES.oss+= src/output/plugins/OssOutputPlugin.cxx
68SUBST_SED.oss+= -e "s,/dev/sound/dsp,${DEVOSSAUDIO},g" 68SUBST_SED.oss+= -e "s,/dev/sound/dsp,${DEVOSSAUDIO},g"
69.endif 69.endif
70 70
71EGDIR= ${PREFIX}/share/examples/mpd 71EGDIR= ${PREFIX}/share/examples/mpd
72CONF_FILES+= ${EGDIR}/mpd.conf ${PKG_SYSCONFDIR}/mpd.conf 72CONF_FILES+= ${EGDIR}/mpd.conf ${PKG_SYSCONFDIR}/mpd.conf
73CONF_FILES+= ${EGDIR}/logrotate.d/mpd ${PKG_SYSCONFDIR}/logrotate.d/mpd 73CONF_FILES+= ${EGDIR}/logrotate.d/mpd ${PKG_SYSCONFDIR}/logrotate.d/mpd
74RCD_SCRIPTS= mpd 74RCD_SCRIPTS= mpd
75 75
76FILES_SUBST+= MPD_USER=${MPD_USER:Q} 76FILES_SUBST+= MPD_USER=${MPD_USER:Q}
77FILES_SUBST+= MPD_GROUP=${MPD_GROUP:Q} 77FILES_SUBST+= MPD_GROUP=${MPD_GROUP:Q}
78FILES_SUBST+= VARBASE=${VARBASE} 78FILES_SUBST+= VARBASE=${VARBASE}
79 79
80BUILD_DEFS+= VARBASE 80BUILD_DEFS+= VARBASE
81 81
82OWN_DIRS_PERMS+= ${VARBASE}/lib/mpd \ 82OWN_DIRS_PERMS+= ${VARBASE}/lib/mpd \
83 ${MPD_USER} ${MPD_GROUP} 0755 83 ${MPD_USER} ${MPD_GROUP} 0755
84 84
85OWN_DIRS_PERMS+= ${VARBASE}/lib/mpd/music \ 85OWN_DIRS_PERMS+= ${VARBASE}/lib/mpd/music \
86 ${MPD_USER} ${MPD_GROUP} 0755 86 ${MPD_USER} ${MPD_GROUP} 0755
87 87
88OWN_DIRS_PERMS+= ${VARBASE}/lib/mpd/playlists \ 88OWN_DIRS_PERMS+= ${VARBASE}/lib/mpd/playlists \
89 ${MPD_USER} ${MPD_GROUP} 0755 89 ${MPD_USER} ${MPD_GROUP} 0755
90 90
 91LDFLAGS.SunOS+= -lnsl -lsocket
91CPPFLAGS.SunOS+= -std=gnu99 -D_XOPEN_SOURCE=600 -D__EXTENSIONS__ 92CPPFLAGS.SunOS+= -std=gnu99 -D_XOPEN_SOURCE=600 -D__EXTENSIONS__
92 93
93.include "options.mk" 94.include "options.mk"
94 95
95SUBST_CLASSES+= conf 96SUBST_CLASSES+= conf
96SUBST_STAGE.conf= pre-configure 97SUBST_STAGE.conf= pre-configure
97SUBST_FILES.conf= mpd.conf 98SUBST_FILES.conf= mpd.conf
98SUBST_MESSAGE.conf= Setting variables in the configuration file. 99SUBST_MESSAGE.conf= Setting variables in the configuration file.
99SUBST_VARS.conf+= VARBASE 100SUBST_VARS.conf+= VARBASE
100SUBST_VARS.conf+= MPD_USER 101SUBST_VARS.conf+= MPD_USER
101 102
102SUBST_CLASSES+= sphinx 103SUBST_CLASSES+= sphinx
103SUBST_STAGE.sphinx= pre-configure 104SUBST_STAGE.sphinx= pre-configure
104SUBST_FILES.sphinx= doc/meson.build 105SUBST_FILES.sphinx= doc/meson.build
105SUBST_MESSAGE.sphinx= Fixing sphinx binary name. 106SUBST_MESSAGE.sphinx= Fixing sphinx binary name.
106SUBST_SED.sphinx+= -e "s,sphinx-build,sphinx-build-${PYVERSSUFFIX}," 107SUBST_SED.sphinx+= -e "s,sphinx-build,sphinx-build-${PYVERSSUFFIX},"
107 108
108INSTALLATION_DIRS= ${EGDIR} ${EGDIR}/logrotate.d 109INSTALLATION_DIRS= ${EGDIR} ${EGDIR}/logrotate.d
109 110
110PYTHON_FOR_BUILD_ONLY= tool 111PYTHON_FOR_BUILD_ONLY= tool
111 112
112PYTHON_VERSIONED_DEPENDENCIES= sphinx:tool 113PYTHON_VERSIONED_DEPENDENCIES= sphinx:tool
113 114
114post-extract: 115post-extract:
115 ${CP} ${FILESDIR}/mpd.conf ${WRKSRC}/mpd.conf 116 ${CP} ${FILESDIR}/mpd.conf ${WRKSRC}/mpd.conf
116 117
117post-install: 118post-install:
118 ${INSTALL_DATA} ${WRKSRC}/mpd.conf ${DESTDIR}${EGDIR} 119 ${INSTALL_DATA} ${WRKSRC}/mpd.conf ${DESTDIR}${EGDIR}
119 ${INSTALL_DATA} ${WRKSRC}/doc/mpdconf.example ${DESTDIR}${EGDIR} 120 ${INSTALL_DATA} ${WRKSRC}/doc/mpdconf.example ${DESTDIR}${EGDIR}
120 ${INSTALL_DATA} ${FILESDIR}/mpd.logrotate ${DESTDIR}${EGDIR}/logrotate.d/mpd 121 ${INSTALL_DATA} ${FILESDIR}/mpd.logrotate ${DESTDIR}${EGDIR}/logrotate.d/mpd
121 122
122.include "../../devel/meson/build.mk" 123.include "../../devel/meson/build.mk"
123BUILDLINK_API_DEPENDS.flac+= flac>=1.2 124BUILDLINK_API_DEPENDS.flac+= flac>=1.2
124.include "../../audio/flac/buildlink3.mk" 125.include "../../audio/flac/buildlink3.mk"
125.include "../../audio/libid3tag/buildlink3.mk" 126.include "../../audio/libid3tag/buildlink3.mk"
126.include "../../audio/libopus/buildlink3.mk" 127.include "../../audio/libopus/buildlink3.mk"
127.include "../../audio/libsndfile/buildlink3.mk" 128.include "../../audio/libsndfile/buildlink3.mk"
128.include "../../audio/mpg123/buildlink3.mk" 129.include "../../audio/mpg123/buildlink3.mk"
129.include "../../databases/sqlite3/buildlink3.mk" 130.include "../../databases/sqlite3/buildlink3.mk"
130.include "../../devel/boost-libs/buildlink3.mk" 131.include "../../devel/boost-libs/buildlink3.mk"
131.include "../../devel/pcre2/buildlink3.mk" 132.include "../../devel/pcre2/buildlink3.mk"
132.include "../../devel/zlib/buildlink3.mk" 133.include "../../devel/zlib/buildlink3.mk"
133.include "../../graphics/hicolor-icon-theme/buildlink3.mk" 134.include "../../graphics/hicolor-icon-theme/buildlink3.mk"
134.include "../../lang/python/versioned_dependencies.mk" 135.include "../../lang/python/versioned_dependencies.mk"
135.include "../../security/libgcrypt/buildlink3.mk" 136.include "../../security/libgcrypt/buildlink3.mk"
136.include "../../textproc/expat/buildlink3.mk" 137.include "../../textproc/expat/buildlink3.mk"
137.include "../../textproc/fmtlib/buildlink3.mk" 138.include "../../textproc/fmtlib/buildlink3.mk"
138.include "../../textproc/icu/buildlink3.mk" 139.include "../../textproc/icu/buildlink3.mk"
139.include "../../mk/pthread.buildlink3.mk" 140.include "../../mk/pthread.buildlink3.mk"
140.include "../../mk/bsd.pkg.mk" 141.include "../../mk/bsd.pkg.mk"

cvs diff -r1.134 -r1.135 pkgsrc/audio/musicpd/distinfo (switch to unified diff)

--- pkgsrc/audio/musicpd/distinfo 2022/03/20 08:25:06 1.134
+++ pkgsrc/audio/musicpd/distinfo 2022/04/18 18:13:55 1.135
@@ -1,6 +1,7 @@ @@ -1,6 +1,7 @@
1$NetBSD: distinfo,v 1.134 2022/03/20 08:25:06 wiz Exp $ 1$NetBSD: distinfo,v 1.135 2022/04/18 18:13:55 nia Exp $
2 2
3BLAKE2s (mpd-0.23.6.tar.xz) = 804b2600782b47177bb9ef35c5f927bd4b33f76345faf244b0335628e49e2953 3BLAKE2s (mpd-0.23.6.tar.xz) = 804b2600782b47177bb9ef35c5f927bd4b33f76345faf244b0335628e49e2953
4SHA512 (mpd-0.23.6.tar.xz) = 1595fcc53a67f1a68b0c0516697d242da53b91626e37bc2f49095add78eb497a52c67c961a421f20b40f3c57a571557a76559a212838de2a3ec4aec6c7a3288d 4SHA512 (mpd-0.23.6.tar.xz) = 1595fcc53a67f1a68b0c0516697d242da53b91626e37bc2f49095add78eb497a52c67c961a421f20b40f3c57a571557a76559a212838de2a3ec4aec6c7a3288d
5Size (mpd-0.23.6.tar.xz) = 770812 bytes 5Size (mpd-0.23.6.tar.xz) = 770812 bytes
6SHA1 (patch-src_net_IPv6Address.hxx) = 3e0ad6e63a970a17d0d8b2403acc538d8b08342e 6SHA1 (patch-src_net_IPv6Address.hxx) = 3e0ad6e63a970a17d0d8b2403acc538d8b08342e
 7SHA1 (patch-src_util_WStringAPI.hxx) = 92f39096770943c26d8aaae8a7581d4daca2d233

File Added: pkgsrc/audio/musicpd/patches/patch-src_util_WStringAPI.hxx
$NetBSD: patch-src_util_WStringAPI.hxx,v 1.1 2022/04/18 18:13:55 nia Exp $

std::wcpcpy is undefined on illumos, whereas wcpcpy isn't,
so the __sun specifics are actively harmful.

--- src/util/WStringAPI.hxx.orig	2022-03-14 17:55:47.000000000 +0000
+++ src/util/WStringAPI.hxx
@@ -125,8 +125,6 @@ UnsafeCopyStringP(wchar_t *dest, const w
 	/* emulate wcpcpy() */
 	UnsafeCopyString(dest, src);
 	return dest + StringLength(dest);
-#elif defined(__sun) && defined (__SVR4)
-	return std::wcpcpy(dest, src);
 #else
 	return wcpcpy(dest, src);
 #endif
@@ -203,11 +201,7 @@ StringCollate(const wchar_t *a, const wc
 static inline wchar_t *
 DuplicateString(const wchar_t *p) noexcept
 {
-#if defined(__sun) && defined (__SVR4)
-	return std::wcsdup(p);
-#else
 	return wcsdup(p);
-#endif
 }
 
 #endif