I have success only with CLANG:
env CC=clang CXX=clang++ arch-meson .. ${_opts[@]}
ninja
from your PKGBUILD!
Git Clone URL: | https://aur.archlinux.org/mpd-sacd.git (read-only, click to copy) |
---|---|
Package Base: | mpd-sacd |
Description: | MPD with patches for SACD and DVDA ISO playback. (DVDA ISO playback temporary disabled) |
Upstream URL: | https://sourceforge.net/p/sacddecoder/mpd/MPD.git/ci/master/tree/ |
Keywords: | dsd dvda mpd sacd |
Licenses: | GPL-2.0-or-later |
Conflicts: | mpd |
Provides: | mpd |
Submitter: | melvinvermeeren |
Maintainer: | Archttila |
Last Packager: | Archttila |
Votes: | 8 |
Popularity: | 0.63 |
First Submitted: | 2016-02-08 18:52 (UTC) |
Last Updated: | 2024-04-28 17:29 (UTC) |
I have success only with CLANG:
env CC=clang CXX=clang++ arch-meson .. ${_opts[@]}
ninja
from your PKGBUILD!
@emilot Yes, with GCC without any additional definition in config or env. My current PKGBUILD:
# Maintainer: Melvin Vermeeren <mail@mel.vin>
pkgname=mpd-sacd
pkgver=0.22.0
pkgrel=4
pkgdesc='MPD with patches for SACD and DVDA ISO playback.'
url='https://sourceforge.net/p/sacddecoder/mpd/MPD.git/ci/master/tree/'
license=('GPL')
arch=('i686' 'x86_64' 'aarch64' 'armv7h')
depends=('libao' 'ffmpeg' 'libmodplug' 'audiofile' 'libshout' 'libmad' 'curl' 'faad2'
'sqlite' 'jack' 'libmms' 'wavpack' 'avahi' 'libid3tag' 'yajl' 'libmpdclient'
'icu' 'libupnp' 'libnfs' 'libsamplerate' 'libsoxr' 'smbclient' 'libcdio-paranoia'
'libgme' 'zziplib' 'fluidsynth' 'libmikmod' 'wildmidi')
makedepends=('boost' 'meson' 'python-sphinx' 'clang' 'ninja')
conflicts=('mpd')
provides=("mpd=${pkgver}")
#latest commit
#source=('mpd::git+https://git.code.sf.net/p/sacddecoder/mpd/MPD.git#commit=0ecc3394c396c2f3e9776160d4fba4bd5712ff0b'
# 'sysusers.d'
# 'tmpfiles.d'
# 'conf')
#archive
#source=('mpd.zip::https://sourceforge.net/projects/mpd.sacddecoder.p/files/mpd.zip/download'
# 'sysusers.d'
# 'tmpfiles.d'
# 'conf')
#from aur
source=('mpd::git+https://git.code.sf.net/p/sacddecoder/mpd/MPD.git#commit=ed387398fa3287d840da791005ec8dad9a81cc7d'
'sysusers.d'
'tmpfiles.d'
'conf')
sha1sums=('SKIP'
'7c7de7b30c6c8e1c705dd415692f6a08a3f62c82'
'd82864959d1a1a07bf75d87c7586dbb713892f3a'
'291fd5cda9f0845834a553017327c4586bd853f6')
backup=('etc/mpd.conf')
prepare() {
cd "${srcdir}/mpd"
rm -rf build
install -d build
}
build() {
cd "${srcdir}/mpd/build"
_opts=('-Ddocumentation=enabled'
'-Dchromaprint=disabled' # appears not to be used for anything
'-Dsidplay=disabled' # unclear why but disabled in the past
'-Dadplug=disabled' # not in an official repo
'-Dsndio=disabled' # interferes with detection of alsa devices
'-Dshine=disabled' # not in an official repo
'-Dtremor=disabled' # not in official repo
'-Dcdio_paranoia=enabled'
'-Diso9660=enabled'
'-Djack=enabled'
'-Dlibmpdclient=enabled'
'-Dpipe=true'
'-Dpulse=enabled'
'-Dsoundcloud=enabled'
'-Dzzip=enabled'
'-Dsacdiso=true'
'-Ddvdaiso=true'
# '-Dc_std=c99'
# '-Dcpp_std=c++17'
)
# env CC=clang CXX=clang++ arch-meson .. ${_opts[@]}
# env CC=clang CXX=clang++ arch-meson .. --reconfigure ${_opts[@]}
arch-meson .. ${_opts[@]}
# meson
ninja
}
package() {
cd "${srcdir}/mpd/build"
DESTDIR="${pkgdir}" ninja install
install -Dm644 ../doc/mpdconf.example "${pkgdir}"/usr/share/doc/mpd/mpdconf.example
install -Dm644 doc/mpd.conf.5 "${pkgdir}"/usr/share/man/man5/mpd.conf.5
install -Dm644 doc/mpd.1 "${pkgdir}"/usr/share/man/man1/mpd.1
install -Dm644 ../../sysusers.d "${pkgdir}"/usr/lib/sysusers.d/mpd.conf
install -Dm644 ../../conf "${pkgdir}"/etc/mpd.conf
install -Dm644 ../../tmpfiles.d "${pkgdir}"/usr/lib/tmpfiles.d/mpd.conf
sed \
-e '/\[Service\]/a User=mpd' \
-e '/WantedBy=/c WantedBy=default.target' \
-i "${pkgdir}"/usr/lib/systemd/system/mpd.service
}
Gcc version:
gcc --version Fri 23:35
gcc (GCC) 10.2.0
Did you run it with GCC?
@emilot I get error on linking:
[703/703] Linking target mpd
FAILED: mpd
c++ -o mpd mpd.p/meson-generated_.._GitVersion.cxx.o mpd.p/src_Main.cxx.o mpd.p/src_protocol_Ack.cxx.o mpd.p/src_protocol_ArgParser.cxx.o mpd.p/src_protocol_Result.cxx.o mpd.p/src_command_CommandError.cxx.o mpd.p/src_command_AllCommands.cxx.o mpd.p/src_command_QueueCommands.cxx.o mpd.p/src_command_TagCommands.cxx.o mpd.p/src_command_PlayerCommands.cxx.o mpd.p/src_command_PlaylistCommands.cxx.o mpd.p/src_command_FileCommands.cxx.o mpd.p/src_command_OutputCommands.cxx.o mpd.p/src_command_MessageCommands.cxx.o mpd.p/src_command_ClientCommands.cxx.o mpd.p/src_command_PartitionCommands.cxx.o mpd.p/src_command_OtherCommands.cxx.o mpd.p/src_command_CommandListBuilder.cxx.o mpd.p/src_Idle.cxx.o mpd.p/src_IdleFlags.cxx.o mpd.p/src_decoder_Domain.cxx.o mpd.p/src_decoder_Thread.cxx.o mpd.p/src_decoder_Control.cxx.o mpd.p/src_decoder_Bridge.cxx.o mpd.p/src_decoder_DecoderPrint.cxx.o mpd.p/src_client_Listener.cxx.o mpd.p/src_client_Client.cxx.o mpd.p/src_client_Config.cxx.o mpd.p/src_client_Domain.cxx.o mpd.p/src_client_Event.cxx.o mpd.p/src_client_Expire.cxx.o mpd.p/src_client_Idle.cxx.o mpd.p/src_client_List.cxx.o mpd.p/src_client_New.cxx.o mpd.p/src_client_Process.cxx.o mpd.p/src_client_Read.cxx.o mpd.p/src_client_Write.cxx.o mpd.p/src_client_Message.cxx.o mpd.p/src_client_Subscribe.cxx.o mpd.p/src_client_File.cxx.o mpd.p/src_client_Response.cxx.o mpd.p/src_client_ThreadBackgroundCommand.cxx.o mpd.p/src_Listen.cxx.o mpd.p/src_LogInit.cxx.o mpd.p/src_ls.cxx.o mpd.p/src_Instance.cxx.o mpd.p/src_win32_Win32Main.cxx.o mpd.p/src_MusicBuffer.cxx.o mpd.p/src_MusicPipe.cxx.o mpd.p/src_MusicChunk.cxx.o mpd.p/src_MusicChunkPtr.cxx.o mpd.p/src_Mapper.cxx.o mpd.p/src_Partition.cxx.o mpd.p/src_Permission.cxx.o mpd.p/src_player_CrossFade.cxx.o mpd.p/src_player_Thread.cxx.o mpd.p/src_player_Control.cxx.o mpd.p/src_PlaylistError.cxx.o mpd.p/src_PlaylistPrint.cxx.o mpd.p/src_PlaylistSave.cxx.o mpd.p/src_playlist_PlaylistStream.cxx.o mpd.p/src_playlist_PlaylistMapper.cxx.o mpd.p/src_playlist_PlaylistAny.cxx.o mpd.p/src_playlist_PlaylistSong.cxx.o mpd.p/src_playlist_PlaylistQueue.cxx.o mpd.p/src_playlist_Print.cxx.o mpd.p/src_db_PlaylistVector.cxx.o mpd.p/src_queue_Queue.cxx.o mpd.p/src_queue_QueuePrint.cxx.o mpd.p/src_queue_QueueSave.cxx.o mpd.p/src_queue_Playlist.cxx.o mpd.p/src_queue_PlaylistControl.cxx.o mpd.p/src_queue_PlaylistEdit.cxx.o mpd.p/src_queue_PlaylistTag.cxx.o mpd.p/src_queue_PlaylistState.cxx.o mpd.p/src_ReplayGainGlobal.cxx.o mpd.p/src_LocateUri.cxx.o mpd.p/src_SongUpdate.cxx.o mpd.p/src_SongLoader.cxx.o mpd.p/src_SongPrint.cxx.o mpd.p/src_SongSave.cxx.o mpd.p/src_StateFile.cxx.o mpd.p/src_StateFileConfig.cxx.o mpd.p/src_Stats.cxx.o mpd.p/src_TagPrint.cxx.o mpd.p/src_TagSave.cxx.o mpd.p/src_TagFile.cxx.o mpd.p/src_TagStream.cxx.o mpd.p/src_TagAny.cxx.o mpd.p/src_TimePrint.cxx.o mpd.p/src_mixer_Volume.cxx.o mpd.p/src_PlaylistFile.cxx.o mpd.p/src_CommandLine.cxx.o mpd.p/src_unix_SignalHandlers.cxx.o mpd.p/src_unix_Daemon.cxx.o mpd.p/src_queue_PlaylistUpdate.cxx.o mpd.p/src_command_StorageCommands.cxx.o mpd.p/src_command_DatabaseCommands.cxx.o mpd.p/src_RemoteTagCache.cxx.o mpd.p/src_command_StickerCommands.cxx.o mpd.p/src_sticker_Database.cxx.o mpd.p/src_sticker_Print.cxx.o mpd.p/src_sticker_SongSticker.cxx.o mpd.p/src_command_NeighborCommands.cxx.o mpd.p/src_TagArchive.cxx.o mpd.p/src_db_update_Archive.cxx.o -flto -Wl,--as-needed -Wl,--no-undefined -pie -Wl,--gc-sections -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -Wl,--start-group libbasic.a src/config/libfs.a liblog.a src/fs/libfs.a src/lib/zlib/libzlib.a src/io/libio.a src/system/libsystem.a src/lib/icu/libicu.a src/util/libutil.a src/lib/dbus/libdbus.a src/event/libevent.a src/io/uring/liburing.a src/thread/libthread.a src/net/libnet.a src/neighbor/libneighbor_glue.a src/neighbor/plugins/libneighbor_plugins.a src/lib/smbclient/libsmbclient.a src/lib/upnp/libupnp.a src/lib/curl/libcurl.a src/lib/expat/libexpat.a src/input/libinput_glue.a src/input/plugins/libinput_plugins.a src/lib/alsa/libalsa.a src/lib/ffmpeg/libffmpeg.a src/lib/nfs/libnfs.a src/lib/yajl/libyajl.a src/lib/crypto/libcrypto_md5.a src/input/libinput_api.a src/pcm/libpcm.a src/pcm/libpcm_basic.a src/tag/libtag.a src/time/libtime.a src/archive/libarchive_glue.a src/archive/plugins/libarchive_plugins.a src/archive/libarchive_api.a src/output/liboutput_glue.a src/filter/libfilter_glue.a src/filter/plugins/libfilter_plugins.a src/filter/libfilter_api.a src/mixer/plugins/libmixer_plugins.a src/lib/pulse/libpulse.a src/output/plugins/liboutput_plugins.a src/output/liboutput_api.a src/mixer/libmixer_glue.a src/decoder/libdecoder_glue.a src/decoder/plugins/libdecoder_plugins.a src/lib/xiph/libflac.a src/lib/xiph/libxiph.a src/lib/xiph/libvorbis.a src/lib/xiph/libogg.a src/lib/crypto/libcrypto_base64.a src/decoder/libdecoder_api.a src/encoder/libencoder_glue.a src/encoder/plugins/libencoder_plugins.a src/playlist/libplaylist_glue.a src/playlist/plugins/libplaylist_plugins.a src/playlist/libplaylist_api.a src/db/libdb_glue.a src/db/plugins/libdb_plugins.a src/db/libdb_api.a src/storage/libstorage_api.a src/storage/libstorage_glue.a src/storage/plugins/libstorage_plugins.a src/song/libsong.a src/lib/pcre/libpcre.a src/lib/systemd/libsystemd.a src/lib/sqlite/libsqlite.a src/zeroconf/libzeroconf_bonjour.a src/lib/sacdiso/libsacdiso.a src/lib/dvdaiso/libdvdaiso.a /usr/lib/libdbus-1.so /usr/lib/liburing.so /usr/lib/libavformat.so /usr/lib/libavcodec.so /usr/lib/libavfilter.so /usr/lib/libavutil.so /usr/lib/libpcre.so /usr/lib/libz.so /usr/lib/libicui18n.so /usr/lib/libicuuc.so /usr/lib/libicudata.so -pthread /usr/lib/libsmbclient.so /usr/lib/libupnp.so /usr/lib/libixml.so /usr/lib/libcurl.so /usr/lib/libexpat.so /usr/lib/libcdio_paranoia.so /usr/lib/libcdio_cdda.so /usr/lib/libcdio.so -lm /usr/lib/libmms.so /usr/lib/libglib-2.0.so /usr/lib/libnfs.so /usr/lib/libyajl.so /usr/lib/libasound.so /usr/lib/libsamplerate.so /usr/lib/libsoxr.so /usr/lib/libid3tag.so -lbz2 /usr/lib/libiso9660.so /usr/lib/libzzip.so /usr/lib/libpulse.so /usr/lib/libao.so /usr/lib/libjack.so -lpthread /usr/lib/libshout.so /usr/lib/libopenal.so /usr/lib/libFLAC.so /usr/lib/libfluidsynth.so /usr/lib/libaudiofile.so -lfaad -lgme -lmad /usr/lib/libmikmod.so /usr/lib/libmodplug.so -lmpcdec /usr/lib/libmpg123.so /usr/lib/libopus.so /usr/lib/libsndfile.so /usr/lib/libogg.so /usr/lib/libvorbis.so /usr/lib/libwavpack.so /usr/lib/libWildMidi.so /usr/lib/libvorbisenc.so -lmp3lame /usr/lib/libtwolame.so /usr/lib/libmpdclient.so /usr/lib/libsystemd.so /usr/lib/libsqlite3.so /usr/lib/libavahi-common.so /usr/lib/libavahi-client.so -Wl,--end-group
/sbin/ld: SacdIsoDecoderPlugin.cxx.o (symbol from plugin): in function `sacdiso_decoder_plugin':
(.text+0x0): multiple definition of `dst::GET_NIBBLE'; DffDecoderPlugin.cxx.o (symbol from plugin):(.text+0x0): first defined here
/sbin/ld: SacdIsoDecoderPlugin.cxx.o (symbol from plugin): in function `sacdiso_decoder_plugin':
(.text+0x0): multiple definition of `dst::GET_BIT'; DffDecoderPlugin.cxx.o (symbol from plugin):(.text+0x0): first defined here
/sbin/ld: libdstdec_binding_dst_decoder_mt.cpp.o (symbol from plugin): in function `dst_decoder_t::get_slot_nr()':
(.text+0x0): multiple definition of `dst::GET_NIBBLE'; DffDecoderPlugin.cxx.o (symbol from plugin):(.text+0x0): first defined here
/sbin/ld: libdstdec_binding_dst_decoder_mt.cpp.o (symbol from plugin): in function `dst_decoder_t::get_slot_nr()':
(.text+0x0): multiple definition of `dst::GET_BIT'; DffDecoderPlugin.cxx.o (symbol from plugin):(.text+0x0): first defined here
/sbin/ld: libdstdec_decoder_decoder.cpp.o (symbol from plugin): in function `dst::decoder_t::close()':
(.text+0x0): multiple definition of `dst::GET_NIBBLE'; DffDecoderPlugin.cxx.o (symbol from plugin):(.text+0x0): first defined here
/sbin/ld: libdstdec_decoder_decoder.cpp.o (symbol from plugin): in function `dst::decoder_t::close()':
(.text+0x0): multiple definition of `dst::GET_BIT'; DffDecoderPlugin.cxx.o (symbol from plugin):(.text+0x0): first defined here
/sbin/ld: dvda_metabase.cpp.o (symbol from plugin): in function `dvda_metabase_t::~dvda_metabase_t()':
(.text+0x0): multiple definition of `xml2utf'; sacd_metabase.cpp.o (symbol from plugin):(.text+0x0): first defined here
/sbin/ld: dvda_metabase.cpp.o (symbol from plugin): in function `dvda_metabase_t::~dvda_metabase_t()':
(.text+0x0): multiple definition of `utf2xml'; sacd_metabase.cpp.o (symbol from plugin):(.text+0x0): first defined here
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.
Try with this "source" commit in PKGBUILD
source=('mpd::git+https://git.code.sf.net/p/sacddecoder/mpd/MPD.git#commit=ed387398fa3287d840da791005ec8dad9a81cc7d'
I do not have any trouble with Update...
@brucehsieh Yes, I have the same problem. That's why I did not update the PKGBUILD in the repository. Now I do not have a powerful PC for debugging and rebuilding mpd. One compilation takes about 40-50 minutes on my hardware. Sorry.
@mo3r Your PKGBUILD can build the mpd-sacd package successfully but the mpd crashes on the update and rescan operations.
@mo3r Added you as a co-maintainer if that's ok with you, don't have access to an arch system right now. Thanks!
@melvinvermeeren Hi, please update PKGBUILD
# Maintainer: Melvin Vermeeren <mail@mel.vin>
pkgname=mpd-sacd
pkgver=0.23~git
pkgrel=1
pkgdesc='MPD with patches for SACD and DVDA ISO playback.'
url='https://sourceforge.net/p/sacddecoder/mpd/MPD.git/ci/master/tree/'
license=('GPL')
arch=('i686' 'x86_64' 'aarch64' 'armv7h')
depends=('libao' 'ffmpeg' 'libmodplug' 'audiofile' 'libshout' 'libmad' 'curl' 'faad2'
'sqlite' 'jack' 'libmms' 'wavpack' 'avahi' 'libid3tag' 'yajl' 'libmpdclient'
'icu' 'libupnp' 'libnfs' 'libsamplerate' 'libsoxr' 'smbclient' 'libcdio-paranoia'
'libgme' 'zziplib' 'fluidsynth' 'libmikmod' 'wildmidi')
makedepends=('boost' 'meson' 'python-sphinx' 'clang' 'ninja')
conflicts=('mpd')
provides=("mpd=${pkgver}")
source=('mpd::git+https://git.code.sf.net/p/sacddecoder/mpd/MPD.git#commit=ad585e179f900ce1038c8a026182a8201d19474c'
'sysusers.d'
'tmpfiles.d'
'conf')
sha1sums=('SKIP'
'7c7de7b30c6c8e1c705dd415692f6a08a3f62c82'
'd82864959d1a1a07bf75d87c7586dbb713892f3a'
'291fd5cda9f0845834a553017327c4586bd853f6')
backup=('etc/mpd.conf')
prepare() {
cd "${srcdir}/mpd"
rm -rf build
install -d build
}
build() {
cd "${srcdir}/mpd/build"
_opts=('-Ddocumentation=enabled'
'-Dstrip=true'
'-Dchromaprint=disabled' # appears not to be used for anything
'-Dsidplay=disabled' # unclear why but disabled in the past
'-Dadplug=disabled' # not in an official repo
'-Dsndio=disabled' # interferes with detection of alsa devices
'-Dshine=disabled' # not in an official repo
'-Dtremor=disabled' # not in official repo
'-Dcdio_paranoia=enabled'
'-Diso9660=enabled'
'-Djack=enabled'
'-Dlibmpdclient=enabled'
'-Dpipe=true'
'-Dpulse=enabled'
'-Dsoundcloud=enabled'
'-Dzzip=enabled'
'-Dsacdiso=true'
'-Ddvdaiso=true'
'-Diconv=enabled'
'-Dc_std=c99'
'-Dcpp_std=c++17'
)
env CC=clang CXX=clang++ arch-meson .. ${_opts[@]}
ninja
}
package() {
cd "${srcdir}/mpd/build"
DESTDIR="${pkgdir}" ninja install
install -Dm644 ../doc/mpdconf.example "${pkgdir}"/usr/share/doc/mpd/mpdconf.example
install -Dm644 doc/mpd.conf.5 "${pkgdir}"/usr/share/man/man5/mpd.conf.5
install -Dm644 doc/mpd.1 "${pkgdir}"/usr/share/man/man1/mpd.1
install -Dm644 ../../sysusers.d "${pkgdir}"/usr/lib/sysusers.d/mpd.conf
install -Dm644 ../../conf "${pkgdir}"/etc/mpd.conf
install -Dm644 ../../tmpfiles.d "${pkgdir}"/usr/lib/tmpfiles.d/mpd.conf
sed \
-e '/\[Service\]/a User=mpd' \
-e '/WantedBy=/c WantedBy=default.target' \
-i "${pkgdir}"/usr/lib/systemd/system/mpd.service
}
Hi, I don't think I'll be able to check this out and fix it anytime soon. Would it work for you if I add you as a co-maintainer so you can push some fixes?
Pinned Comments
Archttila commented on 2024-04-28 17:34 (UTC) (edited on 2024-05-01 14:10 (UTC) by Archttila)
Please do not mark the package as out of date, because mpd-sacd is a fork of regular MPD