Hi
On 12/04/2021 11:44, Michael Tremer wrote:
Hello,
Okay this works, but it is very concerning that libid3tag has not been updated in such a long time.
Yes, I felt the same when I found out how old it was.
There are some alternatives such as id3lib which appear to be actively worked on. What I don't know is if it will work with the mpd player in IPFire.
I could experiment to find out if it works but someone would need to be able to test it. Don't know if I could get audio in my VirtualBox vm testbed. Also based on the recent monthly conf calls agenda item on purifying IPFire would this be an application that will stay in the list longer term anyway. A music player on a firewall seems a bit weird to me anyway.
Let me know if I should have a go at trying to build id3lib and use it with mpd.
Regards, Adolf.
I generally do not want to ship any software that is no longer maintained upstream because we will just accumulate more and more work that we will have to do ourselves or simply let it all rod.
Best, -Michael
On 9 Apr 2021, at 16:53, Adolf Belka adolf.belka@ipfire.org wrote:
Hi All,
On 09/04/2021 13:40, Adolf Belka wrote:
Hi
On 09/04/2021 12:45, Michael Tremer wrote:
Hello,
Oh the wonders of all these hipster build systems...
Yep
On 8 Apr 2021, at 13:25, Adolf Belka adolf.belka@ipfire.org wrote:
Hi All,
I am trying to update mpd. They no longer use autotools but now use meson. I updated the lfs file to use meson with the same options that were previously run with autotools.
When the build gets to the id3tag it fails to find it. I is earlier in the build sequence and would also have been needed for the previous autotools version.
The log I get is attached below followed by the lfs file I am using.
If I remove the id3tag line then everything else in mpd builds successfully. If I run ./make.sh shell and extract the source into /tmp and then do the meson build I get the same result. I tried pkg-config --modversion libid3tag and it came back blank so pkg-config couldn't find it.
Did you try updating libid3tag?
I did look at it but the current available version is libid3tag-0.15.1b from 2004 which is what is currently in IPFire.
I found a solution. As the libid3tag package is 17 years old it does not have any pkgconfig file available. Arch Linux solved this by creating their own and I used theirs with some fine tuning for IPFire and installed it as part of the lfs build and it worked. The meson build of mpd now finds libid3tag and successfully builds. I just need to sort out the rootfiles now and rerun the build and I should have a working update build to submit as a patch.
Regards,
Adolf.
Regards Adolf
If I extract the file in my desktop system and run the meson build it successfully completes also for the id3tag. libid3tag is installed on my arch linux desktop system.
It seems like the build is failing to find the IPFire libid3tag library file successfully. Is there some additional entry of flag that I need to set for the libid3tag files to be found?
Apr 5 19:58:59: Building mpd mpd-0.22.6.tar.xz checksum OK
- cd /usr/src/lfs
- make -f mpd LFS_BASEDIR=/usr/src install
====================================== Installing mpd-0.22.6 ... Install started; saving file list to /usr/src/lsalr ... cd /usr/src/mpd-0.22.6 && meson --prefix=/usr \ --sysconfdir=/etc \ --libdir=/usr/lib \ -D ipv6=disabled \ -D sqlite=disabled \ -D smbclient=disabled \ -D id3tag=enabled \ -D vorbis=enabled \ -D expat=enabled \ -D ffmpeg=enabled \ -D flac=enabled \ -D lame=enabled \ -D upnp=enabled \ -D icu=disabled \ builddir/ The Meson build system Version: 0.56.0 Source dir: /usr/src/mpd-0.22.6 Build dir: /usr/src/mpd-0.22.6/builddir Build type: native build WARNING: Unknown options: "c_std, cpp_std" The value of new options can be set with: meson setup <builddir> --reconfigure -Dnew_option=new_value ... Project name: mpd Project version: 0.22.6 Using 'CFLAGS' from environment with value: '-O2 -pipe -Wall -fexceptions -fPIC -m64 -mtune=generic -fstack-clash-protection -fcf-protection -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong' C compiler for the host machine: ccache cc (gcc 10.2.0 "cc (GCC) 10.2.0") C linker for the host machine: cc ld.bfd 2.35.1 Using 'CXXFLAGS' from environment with value: '-O2 -pipe -Wall -fexceptions -fPIC -m64 -mtune=generic -fstack-clash-protection -fcf-protection -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong' C++ compiler for the host machine: ccache c++ (gcc 10.2.0 "c++ (GCC) 10.2.0") C++ linker for the host machine: c++ ld.bfd 2.35.1 Using 'CFLAGS' from environment with value: '-O2 -pipe -Wall -fexceptions -fPIC -m64 -mtune=generic -fstack-clash-protection -fcf-protection -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong' Using 'CXXFLAGS' from environment with value: '-O2 -pipe -Wall -fexceptions -fPIC -m64 -mtune=generic -fstack-clash-protection -fcf-protection -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong' Host machine cpu family: x86_64 Host machine cpu: x86_64 Configuring Version.h using configuration Compiler for C++ supports arguments -Wvla: YES Compiler for C++ supports arguments -Wdouble-promotion: YES Compiler for C++ supports arguments -fvisibility=hidden: YES Compiler for C++ supports arguments -ffast-math: YES Compiler for C++ supports arguments -ftree-vectorize: YES Compiler for C++ supports arguments -fno-threadsafe-statics: YES Compiler for C++ supports arguments -fmerge-all-constants: YES Compiler for C++ supports arguments -Wmissing-declarations: YES Compiler for C++ supports arguments -Wshadow: YES Compiler for C++ supports arguments -Wpointer-arith: YES Compiler for C++ supports arguments -Wcast-qual: YES Compiler for C++ supports arguments -Wwrite-strings: YES Compiler for C++ supports arguments -Wsign-compare: YES Compiler for C++ supports arguments -Wcomma: NO Compiler for C++ supports arguments -Wextra-semi: YES Compiler for C++ supports arguments -Wheader-hygiene: NO Compiler for C++ supports arguments -Winconsistent-missing-destructor-override: NO Compiler for C++ supports arguments -Wunreachable-code-break: NO Compiler for C++ supports arguments -Wunused: YES Compiler for C++ supports arguments -Wused-but-marked-unused: NO Compiler for C++ supports arguments -Wno-non-virtual-dtor: YES Compiler for C supports arguments -Wvla: YES Compiler for C supports arguments -Wdouble-promotion: YES Compiler for C supports arguments -fvisibility=hidden: YES Compiler for C supports arguments -ffast-math: YES Compiler for C supports arguments -ftree-vectorize: YES Compiler for C supports arguments -Wmissing-prototypes: YES Compiler for C supports arguments -Wshadow: YES Compiler for C supports arguments -Wpointer-arith: YES Compiler for C supports arguments -Wstrict-prototypes: YES Compiler for C supports arguments -Wcast-qual: YES Compiler for C supports arguments -Wwrite-strings: YES Compiler for C supports arguments -pedantic: YES Compiler for C++ supports link arguments -Wl,-z,relro: YES Compiler for C++ supports link arguments -Wl,-z,now: YES Checking for function "getpwnam_r" : YES Checking for function "getpwuid_r" : YES Checking for function "initgroups" : YES Checking for function "fnmatch" : YES Checking for function "strndup" : YES Checking for function "strcasestr" : YES Checking for function "syslog" : YES Found pkg-config: /usr/bin/pkg-config (0.29.2) Run-time dependency Boost found: YES 1.71.0 (/usr) Found CMake: /usr/bin/cmake (3.18.3) Run-time dependency liburing found: NO (tried pkgconfig and cmake) Configuring Features.h using configuration Run-time dependency threads found: YES Checking for function "pthread_setname_np" with dependency threads: YES Header <sys/socket.h> has symbol "struct ucred" : YES Header <sys/socket.h> has symbol "SO_PEERCRED" : YES Checking for function "getpeereid" : NO Run-time dependency dbus-1 found: YES 1.12.20 Dependency icu-i18n skipped: feature icu disabled Checking for function "iconv" : YES Dependency smbclient skipped: feature smbclient disabled Run-time dependency zlib found: YES 1.2.11 Run-time dependency alsa found: YES 1.0.27.1 Run-time dependency libchromaprint found: NO (tried pkgconfig and cmake) Run-time dependency libcurl found: YES 7.75.0 Run-time dependency expat found: YES 2.2.0 Run-time dependency libavformat found: YES 58.29.100 Run-time dependency libavcodec found: YES 58.54.100 Run-time dependency libavutil found: YES 56.31.100 Run-time dependency libavfilter found: YES 7.57.100 Run-time dependency libnfs found: NO (tried pkgconfig and cmake) Run-time dependency libpcre found: YES 8.44 Run-time dependency libpulse found: NO (tried pkgconfig and cmake) Library sndio found: NO Dependency sqlite3 skipped: feature sqlite disabled Run-time dependency libsystemd found: NO (tried pkgconfig and cmake) Run-time dependency libupnp found: YES 1.14.3 Run-time dependency yajl found: NO (tried pkgconfig and cmake) Run-time dependency id3tag found: NO (tried pkgconfig and cmake)
src/tag/meson.build:40:0: ERROR: Dependency "id3tag" not found, tried pkgconfig and cmake
A full log can be found at /usr/src/mpd-0.22.6/builddir/meson-logs/meson-log.txt make: *** [mpd:81: /usr/src/log/mpd-0.22.6] Error 1
############################################################################### # # # IPFire.org - A linux based firewall # # Copyright (C) 2007-2018 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # # the Free Software Foundation, either version 3 of the License, or # # (at your option) any later version. # # # # This program is distributed in the hope that it will be useful, # # but WITHOUT ANY WARRANTY; without even the implied warranty of # # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # # GNU General Public License for more details. # # # # You should have received a copy of the GNU General Public License # # along with this program. If not, see http://www.gnu.org/licenses/. # # # ###############################################################################
############################################################################### # Definitions ###############################################################################
include Config
VER = 0.22.6
THISAPP = mpd-$(VER) DL_FILE = $(THISAPP).tar.xz DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/${THISAPP} TARGET = $(DIR_INFO)/$(THISAPP) PROG = mpd PAK_VER = 21
DEPS = alsa avahi faad2 ffmpeg flac lame libmad libshout libogg libid3tag libvorbis opus soxr
############################################################################### # Top-level Rules ###############################################################################
objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
$(DL_FILE)_MD5 = 774a6250870730f3d55eb1445ab751dd
install : $(TARGET)
check : $(patsubst %,$(DIR_CHK)/%,$(objects))
download :$(patsubst %,$(DIR_DL)/%,$(objects))
md5 : $(subst %,%_MD5,$(objects))
dist: @$(PAK)
############################################################################### # Downloading, checking, md5sum ###############################################################################
$(patsubst %,$(DIR_CHK)/%,$(objects)) : @$(CHECK)
$(patsubst %,$(DIR_DL)/%,$(objects)) : @$(LOAD)
$(subst %,%_MD5,$(objects)) : @$(MD5)
############################################################################### # Installation Details ###############################################################################
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) $(UPDATE_AUTOMAKE) cd $(DIR_APP) && meson --prefix=/usr \ --sysconfdir=/etc \ --libdir=/usr/lib \ -D ipv6=disabled \ -D sqlite=disabled \ -D smbclient=disabled \ -D id3tag=enabled \ -D vorbis=enabled \ -D expat=enabled \ -D ffmpeg=enabled \ -D flac=enabled \ -D lame=enabled \ -D upnp=enabled \ -D icu=disabled \ builddir/ cd $(DIR_APP) && ninja -C builddir/ cd $(DIR_APP) && ninja -C builddir/ install
#install initscripts $(call INSTALL_INITSCRIPT,mpd) @rm -rf $(DIR_APP) touch /var/log/mpd.error.log touch /var/log/mpd.log @$(POSTBUILD)