pkunavin / ncxmms2 Goto Github PK
View Code? Open in Web Editor NEWncurses xmms2 client
License: GNU General Public License v2.0
ncurses xmms2 client
License: GNU General Public License v2.0
It appears that ncxmms2 does not build withBoost >= 1.50.0. I've tested this with 1.50.0, 1.52.0, and 1.53.0 on an Arch Linux ARM box; all fail at the same point with the same error:
-- The C compiler identification is GNU 4.7.2
-- The CXX compiler identification is GNU 4.7.2
-- Check for working C compiler: /usr/lib/colorgcc/bin/cc
-- Check for working C compiler: /usr/lib/colorgcc/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/lib/colorgcc/bin/c++
-- Check for working CXX compiler: /usr/lib/colorgcc/bin/c++ -- works
-- checking for module 'ncursesw'
-- found ncursesw, version 5.9.20110404
-- checking for module 'glib-2.0'
-- found glib-2.0, version 2.36.3
-- Boost version: 1.50.0
-- checking for module 'xmms2-client-cpp'
-- found xmms2-client-cpp, version 0.8;DrO_o;(git;commit:;Unknown)
-- checking for module 'xmms2-client-cpp-glib'
-- found xmms2-client-cpp-glib, version 0.8;DrO_o;(git;commit:;Unknown)
-- Configuring done
-- Generating done
-- Build files have been written to: /tmp/ncxmms2
Scanning dependencies of target libtermkey
[ 2%] Building C object 3rdparty/libtermkey/CMakeFiles/libtermkey.dir/driver-csi.c.o
[ 4%] Building C object 3rdparty/libtermkey/CMakeFiles/libtermkey.dir/driver-ti.c.o
[ 6%] Building C object 3rdparty/libtermkey/CMakeFiles/libtermkey.dir/termkey.c.o
Linking C static library liblibtermkey.a
[ 6%] Built target libtermkey
Scanning dependencies of target ncxmms2-lib
[ 8%] Building CXX object src/lib/CMakeFiles/ncxmms2-lib.dir/application.cpp.o
[ 10%] Building CXX object src/lib/CMakeFiles/ncxmms2-lib.dir/object.cpp.o
[ 12%] Building CXX object src/lib/CMakeFiles/ncxmms2-lib.dir/window.cpp.o
[ 14%] Building CXX object src/lib/CMakeFiles/ncxmms2-lib.dir/stackedwindow.cpp.o
[ 16%] Building CXX object src/lib/CMakeFiles/ncxmms2-lib.dir/timer.cpp.o
[ 18%] Building CXX object src/lib/CMakeFiles/ncxmms2-lib.dir/painter.cpp.o
[ 20%] Building CXX object src/lib/CMakeFiles/ncxmms2-lib.dir/keyevent.cpp.o
[ 22%] Building CXX object src/lib/CMakeFiles/ncxmms2-lib.dir/label.cpp.o
[ 24%] Building CXX object src/lib/CMakeFiles/ncxmms2-lib.dir/lineedit.cpp.o
[ 26%] Building CXX object src/lib/CMakeFiles/ncxmms2-lib.dir/listmodel.cpp.o
[ 28%] Building CXX object src/lib/CMakeFiles/ncxmms2-lib.dir/listview.cpp.o
[ 30%] Building CXX object src/lib/CMakeFiles/ncxmms2-lib.dir/listmodelitemdelegate.cpp.o
[ 32%] Building CXX object src/lib/CMakeFiles/ncxmms2-lib.dir/utf.cpp.o
[ 34%] Building CXX object src/lib/CMakeFiles/ncxmms2-lib.dir/textview.cpp.o
[ 36%] Building CXX object src/lib/CMakeFiles/ncxmms2-lib.dir/iniparser.cpp.o
[ 38%] Building CXX object src/lib/CMakeFiles/ncxmms2-lib.dir/palette.cpp.o
Linking CXX static library libncxmms2-lib.a
[ 38%] Built target ncxmms2-lib
Scanning dependencies of target ncxmms2
[ 40%] Building CXX object src/CMakeFiles/ncxmms2.dir/main.cpp.o
[ 42%] Building CXX object src/CMakeFiles/ncxmms2.dir/utils.cpp.o
[ 44%] Building CXX object src/CMakeFiles/ncxmms2.dir/xmmsutils.cpp.o
[ 46%] Building CXX object src/CMakeFiles/ncxmms2.dir/settings.cpp.o
[ 48%] Building CXX object src/CMakeFiles/ncxmms2.dir/commandlineoptions.cpp.o
[ 51%] Building CXX object src/CMakeFiles/ncxmms2.dir/song.cpp.o
[ 53%] Building CXX object src/CMakeFiles/ncxmms2.dir/songdisplayformatparser.cpp.o
In file included from /tmp/ncxmms2/src/songdisplayformatparser.h:24:0,
from /tmp/ncxmms2/src/songdisplayformatparser.cpp:22:
/tmp/ncxmms2/src/utils.h: In instantiation of ‘ncxmms2::Utils::FormatImpl::BoostFormatWrapper::BoostFormatWrapper(T&&) [with T = ncxmms2::SongDisplayFormatParser::ParsingError]’:
/tmp/ncxmms2/src/utils.h:80:106: required from ‘std::string ncxmms2::Utils::format(T&&, Args&& ...) [with T = ncxmms2::SongDisplayFormatParser::ParsingError; Args = {}; std::string = std::basic_string<char>]’ /tmp/ncxmms2/src/songdisplayformatparser.h:353:69: required from ‘ncxmms2::SongDisplayFormatParser::ParsingError::ParsingError(Args&& ...) [with Args = {ncxmms2::SongDisplayFormatParser::ParsingError}]’ /tmp/ncxmms2/src/songdisplayformatparser.cpp:39:66: required from here
/tmp/ncxmms2/src/utils.h:60:38: error: no matching function for call to ‘boost::basic_format<char>::basic_format(ncxmms2::SongDisplayFormatParser::ParsingError)’ /tmp/ncxmms2/src/utils.h:60:38: note: candidates are:
In file included from /usr/include/boost/format.hpp:47:0,
from /tmp/ncxmms2/src/utils.h:22, from /tmp/ncxmms2/src/songdisplayformatparser.h:24,
from /tmp/ncxmms2/src/songdisplayformatparser.cpp:22:
/usr/include/boost/format/format_implementation.hpp:46:5: note: boost::basic_format<Ch, Tr, Alloc>::basic_format(const string_type&, const std::locale&) [with Ch = char; Tr = std::char_traits<char>; Alloc = std::allocator<char>; boost::basic_format<Ch, Tr, Alloc>::string_type = std::basic_string<char>]
/usr/include/boost/format/format_implementation.hpp:46:5: note: candidate expects 2 arguments, 1 provided
/usr/include/boost/format/format_implementation.hpp:38:5: note: boost::basic_format<Ch, Tr, Alloc>::basic_format(const Ch*, const std::locale&) [with Ch = char; Tr = std::char_traits<char>; Alloc = std::allocator<char>] /usr/include/boost/format/format_implementation.hpp:38:5: note: candidate expects 2 arguments, 1 provided
/usr/include/boost/format/format_implementation.hpp:68:5: note: boost::basic_format<Ch, Tr, Alloc>::basic_format(const boost::basic_format<Ch, Tr, Alloc>&) [with Ch = char; Tr = std::char_traits<char>; Alloc = std::allocator<char>; boost::basic_format<Ch, Tr, Alloc> = boost::basic_format<char>]
/usr/include/boost/format/format_implementation.hpp:68:5: note: no known conversion for argument 1 from ‘ncxmms2::SongDisplayFormatParser::ParsingError’ to ‘const boost::basic_format<char>&’ /usr/include/boost/format/format_implementation.hpp:60:5: note: boost::basic_format<Ch, Tr, Alloc>::basic_format(const string_type&) [with Ch = char; Tr = std::char_traits<char>; Alloc = std::allocator<char>; boost::basic_format<Ch, Tr, Alloc>::string_type = std::basic_string<char>] /usr/include/boost/format/format_implementation.hpp:60:5: note: no known conversion for argument 1 from ‘ncxmms2::SongDisplayFormatParser::ParsingError’ to ‘const string_type& {aka const std::basic_string<char>&}’ /usr/include/boost/format/format_implementation.hpp:28:5: note: boost::basic_format<Ch, Tr, Alloc>::basic_format(const Ch*) [with Ch = char; Tr = std::char_traits<char>; Alloc = std::allocator<char>]
/usr/include/boost/format/format_implementation.hpp:28:5: note: no known conversion for argument 1 from ‘ncxmms2::SongDisplayFormatParser::ParsingError’ to ‘const char*’
make[2]: *** [src/CMakeFiles/ncxmms2.dir/songdisplayformatparser.cpp.o] Error 1
make[1]: *** [src/CMakeFiles/ncxmms2.dir/all] Error 2
make: *** [all] Error 2
The above is from a build attempted with Boost 1.50.0, but later versions do not appear to produce substantially different errors (all error out at the same place, and all note that "candidate expects 2 arguments, 1 provided"). I'm assuming that the build should work with Boost 1.49.0 but am unable to test, as I cannot get that version of boost to build on my architecture (armv7h).
Not really a C++ kinda guy, but I'm willing to test out potential patches, etc.
There is output from cmake:
$ cmake ..
-- The C compiler identification is GNU 4.7.2
-- The CXX compiler identification is GNU 4.7.2
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Boost version: 1.49.0
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.27.1")
-- checking for module 'ncursesw'
-- package 'ncursesw' not found
CMake Error at /usr/share/cmake/Modules/FindPkgConfig.cmake:279 (message):
A required package was not found
Call Stack (most recent call first):
/usr/share/cmake/Modules/FindPkgConfig.cmake:333 (_pkg_check_modules_internal)
src/lib/CMakeLists.txt:55 (pkg_check_modules)
-- checking for module 'glib-2.0'
-- found glib-2.0, version 2.34.3
-- Boost version: 1.49.0
-- checking for module 'xmms2-client-cpp'
-- found xmms2-client-cpp, version 0.8
-- checking for module 'xmms2-client-cpp-glib'
-- found xmms2-client-cpp-glib, version 0.8
-- checking for module 'ncursesw'
-- package 'ncursesw' not found
CMake Error at /usr/share/cmake/Modules/FindPkgConfig.cmake:279 (message):
A required package was not found
Call Stack (most recent call first):
/usr/share/cmake/Modules/FindPkgConfig.cmake:333 (_pkg_check_modules_internal)
3rdparty/libtermkey/CMakeLists.txt:17 (pkg_check_modules)
-- Configuring incomplete, errors occurred!
Though package ncurses-devel was installed and it contains ncursesw headers:
$ rpm -ql ncurses-devel | grep ncursesw
/usr/bin/ncursesw5-config
/usr/bin/ncursesw6-config
/usr/include/ncurses6/ncursesw
/usr/include/ncurses6/ncursesw/curses.h
/usr/include/ncurses6/ncursesw/cursesapp.h
/usr/include/ncurses6/ncursesw/cursesf.h
/usr/include/ncurses6/ncursesw/cursesm.h
/usr/include/ncurses6/ncursesw/cursesp.h
/usr/include/ncurses6/ncursesw/cursesw.h
/usr/include/ncurses6/ncursesw/cursslk.h
/usr/include/ncurses6/ncursesw/eti.h
/usr/include/ncurses6/ncursesw/etip.h
/usr/include/ncurses6/ncursesw/form.h
/usr/include/ncurses6/ncursesw/menu.h
/usr/include/ncurses6/ncursesw/nc_tparm.h
/usr/include/ncurses6/ncursesw/ncurses.h
/usr/include/ncurses6/ncursesw/ncurses_dll.h
/usr/include/ncurses6/ncursesw/panel.h
/usr/include/ncurses6/ncursesw/term.h
/usr/include/ncurses6/ncursesw/term_entry.h
/usr/include/ncurses6/ncursesw/termcap.h
/usr/include/ncurses6/ncursesw/tic.h
/usr/include/ncurses6/ncursesw/unctrl.h
/usr/include/ncursesw
/usr/include/ncursesw/curses.h
/usr/include/ncursesw/cursesapp.h
/usr/include/ncursesw/cursesf.h
/usr/include/ncursesw/cursesm.h
/usr/include/ncursesw/cursesp.h
/usr/include/ncursesw/cursesw.h
/usr/include/ncursesw/cursslk.h
/usr/include/ncursesw/eti.h
/usr/include/ncursesw/etip.h
/usr/include/ncursesw/form.h
/usr/include/ncursesw/menu.h
/usr/include/ncursesw/nc_tparm.h
/usr/include/ncursesw/ncurses.h
/usr/include/ncursesw/ncurses_dll.h
/usr/include/ncursesw/panel.h
/usr/include/ncursesw/term.h
/usr/include/ncursesw/term_entry.h
/usr/include/ncursesw/termcap.h
/usr/include/ncursesw/tic.h
/usr/include/ncursesw/unctrl.h
/usr/lib64/libncursesw.a
/usr/lib64/libncursesw.so
/usr/lib64/ncurses6/libncursesw.a
/usr/lib64/ncurses6/libncursesw.so
/usr/share/man/man1/ncursesw5-config.1.gz
/usr/share/man/man1/ncursesw6-config.1.gz
What can be wrong?
By default ncxmms2 uses black for its background color. This looks very ugly if one usually uses a brighter background color in the terminal.
Therefore it would be nice if support for the terminal's default fore- and background would be added. I think these should be configurable colors in ncxmms2.colors
and maybe even be used in the default color scheme.
Until ncxmms2 gets a less offensive background color I have to use ncxmms2 -n
. 😃
ncmpcpp has an option to change primary column to albumartist instead of artist.
Would be neat if ncxmms2 could do the same.
when i open ncxmm2,cpu usage of X increase from less than 5% to almost 30% joudging from top
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.