Discussion:
[LAU] trying to build LinuxSampler
Brent Busby
2015-09-10 21:32:58 UTC
Permalink
After a recent update to my system, it seems I can now no longer compile
LinuxSampler. I've tried both 1.0.0 and the new 2.0.0.

My versions of the dependencies are all the latest stable:

libgig 4.0.0
liblscp 0.5.7

Should I be going with the latest SVN, or are the releases ok?


Below is the spillage I get. Liblscp and libgig get built and installed
fine, and then this happens during the build of linuxsampler itself:


/bin/sh ../../libtool --tag=CXX --mode=compile x86_64-pc-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I../.. -I/usr/include/libgig -Wreturn-type -ffast-math -O2 -march=athlon64 -pipe -pthread -c -o lscpevent.lo lscpevent.cpp
libtool: compile: x86_64-pc-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I../.. -I/usr/include/libgig -Wreturn-type -ffast-math -O2 -march=athlon64 -pipe -pthread -c lscpevent.cpp -fPIC -DPIC -o .libs/lscpevent.o
lscp.y: In function 'bool _isRuleTerminalSymbol(int)':
lscp.y:1380:18: error: 'yyprhs' was not declared in this scope
for (int i = yyprhs[rule]; yyrhs[i] != -1; ++i)
^
lscp.y:1380:32: error: 'yyrhs' was not declared in this scope
for (int i = yyprhs[rule]; yyrhs[i] != -1; ++i)
^
lscpserver.cpp: In member function 'String LinuxSampler::LSCPServer::GetChannelInfo(uint)':
lscpserver.cpp:1253:101: warning: 'LinuxSampler::MidiInputDevice* LinuxSampler::SamplerChannel::GetMidiInputDevice()' is deprecated (declared at ../Sampler.h:258) [-Wdeprecated-declarations]
INPUT_DEVICE", GetMidiInputDeviceIndex(pSamplerChannel->GetMidiInputDevice()));
^
lscpserver.cpp:1254:73: warning: 'int LinuxSampler::SamplerChannel::GetMidiInputPort()' is deprecated (declared at ../Sampler.h:237) [-Wdeprecated-declarations]
result.Add("MIDI_INPUT_PORT", pSamplerChannel->GetMidiInputPort());
^
In file included from lscpparser.h:41:0,
from lscpserver.h:45,
from lscpserver.cpp:28:
lscpserver.cpp: In member function 'String LinuxSampler::LSCPServer::GetMidiInputDriverParameterInfo(String, String, std::map<std::basic_string<char>, std::basic_string<char> >)':
lscpserver.cpp:1452:161: warning: format '%d' expects argument of type 'int', but argument 4 has type 'std::map<std::basic_string<char>, std::basic_string<char> >::size_type {aka long unsigned int}' [-Wformat=]
ndencyListSize=%d)\n",Driver.c_str(),Parameter.c_str(),DependencyList.size()));
^
../common/global_private.h:39:76: note: in definition of macro 'dmsg'
ne dmsg(debuglevel,x) if (CONFIG_DEBUG_LEVEL >= debuglevel) {printf x; fflush(s
^
lscpserver.cpp: In member function 'String LinuxSampler::LSCPServer::GetAudioOutputDriverParameterInfo(String, String, std::map<std::basic_string<char>, std::basic_string<char> >)':
lscpserver.cpp:1480:163: warning: format '%d' expects argument of type 'int', but argument 4 has type 'std::map<std::basic_string<char>, std::basic_string<char> >::size_type {aka long unsigned int}' [-Wformat=]
ndencyListSize=%d)\n",Driver.c_str(),Parameter.c_str(),DependencyList.size()));
^
../common/global_private.h:39:76: note: in definition of macro 'dmsg'
ne dmsg(debuglevel,x) if (CONFIG_DEBUG_LEVEL >= debuglevel) {printf x; fflush(s
^
lscpserver.cpp: In member function 'String LinuxSampler::LSCPServer::SetMIDIInputPort(uint, uint)':
lscpserver.cpp:2004:51: warning: 'void LinuxSampler::SamplerChannel::SetMidiInputPort(int)' is deprecated (declared at ../Sampler.h:169) [-Wdeprecated-declarations]
pSamplerChannel->SetMidiInputPort(MIDIPort);
^
lscpserver.cpp: In member function 'String LinuxSampler::LSCPServer::SetMIDIInputDevice(uint, uint)':
lscpserver.cpp:2035:52: warning: 'void LinuxSampler::SamplerChannel::SetMidiInputDevice(LinuxSampler::MidiInputDevice*)' is deprecated (declared at ../Sampler.h:143) [-Wdeprecated-declarations]
pSamplerChannel->SetMidiInputDevice(pDevice);
^
lscpserver.cpp: In member function 'String LinuxSampler::LSCPServer::SetMIDIInputType(String, uint)':
lscpserver.cpp:2073:52: warning: 'void LinuxSampler::SamplerChannel::SetMidiInputDevice(LinuxSampler::MidiInputDevice*)' is deprecated (declared at ../Sampler.h:143) [-Wdeprecated-declarations]
pSamplerChannel->SetMidiInputDevice(pDevice);
^
lscpserver.cpp: In member function 'String LinuxSampler::LSCPServer::SetMIDIInput(uint, uint, uint, uint)':
lscpserver.cpp:2094:83: warning: 'void LinuxSampler::SamplerChannel::SetMidiInput(LinuxSampler::MidiInputDevice*, int, LinuxSampler::midi_chan_t)' is deprecated (declared at ../Sampler.h:207) [-Wdeprecated-declarations]
pSamplerChannel->SetMidiInput(pDevice, MIDIPort, (midi_chan_t) MIDIChannel);
^
Makefile:441: recipe for target 'lscpparser.lo' failed
make[3]: *** [lscpparser.lo] Error 1
make[3]: *** Waiting for unfinished jobs....
make[3]: Leaving directory '/var/tmp/portage/media-sound/linuxsampler-2.0.0/work/linuxsampler-2.0.0/src/network'
Makefile:674: recipe for target 'all-recursive' failed
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory '/var/tmp/portage/media-sound/linuxsampler-2.0.0/work/linuxsampler-2.0.0/src'
Makefile:496: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/var/tmp/portage/media-sound/linuxsampler-2.0.0/work/linuxsampler-2.0.0'
Makefile:400: recipe for target 'all' failed
make: *** [all] Error 2
Brent Busby
2015-09-10 23:31:19 UTC
Permalink
Looks like going to SVN died quicker. Libgig and Liblscp still build
fine from SVN, then on LinuxSampler, bang. Looks like I'm going to be
doing SoundFonts and hardware samplers for awhile. :)



--8<---------------cut here---------------start------------->8---
# Instruments database support: yes
# Instruments DB default location: /var/lib/linuxsampler/instruments.db
# Plugin Path: /usr/lib64/linuxsampler/plugins
#-------------------------------------------------------------------
# MIDI Input Drivers:
# ALSA: yes, JACK: yes, CoreMIDI: no, MME: no, MidiShare: no
#-------------------------------------------------------------------
# Audio Output Drivers:
# ALSA: yes, JACK: yes, ARTS: no, CoreAudio: no, ASIO: no
#-------------------------------------------------------------------
# Sampler Engines:
# GIG: yes, SF2: yes, SFZ: yes
#-------------------------------------------------------------------
# Effect plugin systems for internal effects:
# LADSPA: yes
#-------------------------------------------------------------------
# Building sampler as plugin for following host standards:
# DSSI: yes, LV2: yes, VST: no, AU: no
#-------------------------------------------------------------------#
# Read './configure --help' or file 'configure.in' for details. #
#####################################################################

Good. Now type 'make' to compile, followed by 'make install' as root.
Source configured.
Compiling source in /var/tmp/portage/media-sound/linuxsampler-9999/work/linuxsampler-9999 ...
Working in BUILD_DIR: "/var/tmp/portage/media-sound/linuxsampler-9999/work/linuxsampler-9999"
make -j4 -j1
make all-recursive
make[1]: Entering directory '/var/tmp/portage/media-sound/linuxsampler-9999/work/linuxsampler-9999'
Making all in man
make[2]: Entering directory '/var/tmp/portage/media-sound/linuxsampler-9999/work/linuxsampler-9999/man'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/var/tmp/portage/media-sound/linuxsampler-9999/work/linuxsampler-9999/man'
Making all in src
make[2]: Entering directory '/var/tmp/portage/media-sound/linuxsampler-9999/work/linuxsampler-9999/src'
Making all in scriptvm
make[3]: Entering directory '/var/tmp/portage/media-sound/linuxsampler-9999/work/linuxsampler-9999/src/scriptvm'
make[3]: *** No rule to make target 'parser.h', needed by 'all'. Stop.
make[3]: Leaving directory '/var/tmp/portage/media-sound/linuxsampler-9999/work/linuxsampler-9999/src/scriptvm'
Makefile:685: recipe for target 'all-recursive' failed
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory '/var/tmp/portage/media-sound/linuxsampler-9999/work/linuxsampler-9999/src'
Makefile:507: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/var/tmp/portage/media-sound/linuxsampler-9999/work/linuxsampler-9999'
Makefile:412: recipe for target 'all' failed
make: *** [all] Error 2
--8<---------------cut here---------------end--------------->8---
Dave Phillips
2015-09-11 00:24:18 UTC
Permalink
Post by Brent Busby
Looks like going to SVN died quicker. Libgig and Liblscp still build
fine from SVN, then on LinuxSampler, bang. Looks like I'm going to be
doing SoundFonts and hardware samplers for awhile. :)
Hi Brent,

I built and installed it from SVN on Fedora 19. There is a recommended
build sequence :

libgig
linuxsampler
gigedit
liblscp
qsampler

Did you follow that order ?

Best,

dp
Brent Busby
2015-09-11 03:35:11 UTC
Permalink
Post by Dave Phillips
I built and installed it from SVN on Fedora 19. There is a recommended
libgig
linuxsampler
gigedit
liblscp
qsampler
Did you follow that order ?
Tried it, still dies on linuxsampler. It's ok... I'm very into
hardware instruments. If it was Muse or Ardour that didn't work, that'd
be a problem...
Glen MacArthur
2015-09-11 01:37:25 UTC
Permalink
Hi..

Just a quick guess.. What compiler version are you using? If you are on a
cutting edge distribution with gcc 5 Linuxsampler may not build with gcc 5
yet... as I said just a shot in the dark..
Post by Brent Busby
Looks like going to SVN died quicker. Libgig and Liblscp still build
fine from SVN, then on LinuxSampler, bang. Looks like I'm going to be
doing SoundFonts and hardware samplers for awhile. :)
--8<---------------cut here---------------start------------->8---
# Instruments database support: yes
# Instruments DB default location: /var/lib/linuxsampler/instruments.db
# Plugin Path: /usr/lib64/linuxsampler/plugins
#-------------------------------------------------------------------
# ALSA: yes, JACK: yes, CoreMIDI: no, MME: no, MidiShare: no
#-------------------------------------------------------------------
# ALSA: yes, JACK: yes, ARTS: no, CoreAudio: no, ASIO: no
#-------------------------------------------------------------------
# GIG: yes, SF2: yes, SFZ: yes
#-------------------------------------------------------------------
# LADSPA: yes
#-------------------------------------------------------------------
# DSSI: yes, LV2: yes, VST: no, AU: no
#-------------------------------------------------------------------#
# Read './configure --help' or file 'configure.in' for details. #
#####################################################################
Good. Now type 'make' to compile, followed by 'make install' as root.
Source configured.
Compiling source in
/var/tmp/portage/media-sound/linuxsampler-9999/work/linuxsampler-9999
...
"/var/tmp/portage/media-sound/linuxsampler-9999/work/linuxsampler-9999"
make -j4 -j1
make all-recursive
make[1]: Entering directory
'/var/tmp/portage/media-sound/linuxsampler-9999/work/linuxsampler-9999'
Making all in man
make[2]: Entering directory
'/var/tmp/portage/media-sound/linuxsampler-9999/work/linuxsampler-9999/man'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory
'/var/tmp/portage/media-sound/linuxsampler-9999/work/linuxsampler-9999/man'
Making all in src
make[2]: Entering directory
'/var/tmp/portage/media-sound/linuxsampler-9999/work/linuxsampler-9999/src'
Making all in scriptvm
make[3]: Entering directory
'/var/tmp/portage/media-sound/linuxsampler-9999/work/linuxsampler-9999/src/scriptvm'
make[3]: *** No rule to make target 'parser.h', needed by 'all'. Stop.
make[3]: Leaving directory
'/var/tmp/portage/media-sound/linuxsampler-9999/work/linuxsampler-9999/src/scriptvm'
Makefile:685: recipe for target 'all-recursive' failed
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory
'/var/tmp/portage/media-sound/linuxsampler-9999/work/linuxsampler-9999/src'
Makefile:507: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory
'/var/tmp/portage/media-sound/linuxsampler-9999/work/linuxsampler-9999'
Makefile:412: recipe for target 'all' failed
make: *** [all] Error 2
--8<---------------cut here---------------end--------------->8---
_______________________________________________
Linux-audio-user mailing list
http://lists.linuxaudio.org/listinfo/linux-audio-user
Ralf Mardorf
2015-09-11 09:01:13 UTC
Permalink
Post by Glen MacArthur
Just a quick guess.. What compiler version are you using? If you are
on a cutting edge distribution with gcc 5 Linuxsampler may not build
with gcc 5 yet... as I said just a shot in the dark..
On my Arch install gcc 5.2.0 was upgraded on 2015-08-14.
A few days later I build linuxsampler svn on 2015-08-27.

[***@archlinux ~]$ grep gcc /var/log/pacman.log | grep 2015-08-14
[2015-08-14 00:50] [ALPM] upgraded lib32-gcc-libs (5.2.0-1 -> 5.2.0-2)
[2015-08-14 00:50] [ALPM] upgraded gcc-libs-multilib (5.2.0-1 -> 5.2.0-2)
[2015-08-14 00:51] [ALPM] upgraded gcc-multilib (5.2.0-1 -> 5.2.0-2)
[***@archlinux ~]$ grep linuxsampler-svn /var/log/pacman.log
[2015-08-27 18:06] [PACMAN] Running 'pacman --color auto -U --asdeps /tmp/yaourt-tmp-rocketmouse/PKGDEST.axo/linuxsampler-svn-r2839-1-x86_64.pkg.tar.xz'
[2015-08-27 18:06] [ALPM] installed linuxsampler-svn (r2839-1)

The AUR download snapshot I used doesn't contain patches.
https://aur.archlinux.org/packages/linuxsampler-svn/

So gcc 5 isn't the culprit.

Regards,
Ralf
Tito Latini
2015-09-11 06:40:24 UTC
Permalink
Probably the version of your bison(te) is 2.x

remove the file

rm linuxsampler-2.0.0/src/network/lscpparser.cpp

autogenerated for bison 3 (for 2.7 in svn), then compile.

Tested with bison 2.7
Ralf Mardorf
2015-09-11 09:22:27 UTC
Permalink
Post by Tito Latini
Probably the version of your bison(te) is 2.x
When I build linuxsampler from svn successfully bison indeed was > 2.x.

[***@archlinux ~]$ grep bison /var/log/pacman.log | grep 2015
[2015-01-28 17:28] [ALPM] upgraded bison (3.0.2-1 -> 3.0.4-1)
Tito Latini
2015-09-11 09:49:14 UTC
Permalink
Post by Ralf Mardorf
Post by Tito Latini
Probably the version of your bison(te) is 2.x
When I build linuxsampler from svn successfully bison indeed was > 2.x.
From svn: today it is 2.7, perhaps tomorrow it is 3.0, the next month 2.7, then 3.1, etc..
it depends on the version of the committer.

It's a bug: a file autogenerated by the parser generator is under
version control but the code uses a branch for bison 2.x and 3.
Wayne DePrince Jr.
2015-09-11 13:17:40 UTC
Permalink
Il giorno Thu, 10 Sep 2015 16:32:58 -0500
Post by Brent Busby
After a recent update to my system, it seems I can now no longer compile
LinuxSampler. I've tried both 1.0.0 and the new 2.0.0.
libgig 4.0.0
liblscp 0.5.7
Should I be going with the latest SVN, or are the releases ok?
Below is the spillage I get. Liblscp and libgig get built and installed
/bin/sh ../../libtool --tag=CXX --mode=compile x86_64-pc-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I../.. -I/usr/include/libgig -Wreturn-type -ffast-math -O2 -march=athlon64 -pipe -pthread -c -o lscpevent.lo lscpevent.cpp
libtool: compile: x86_64-pc-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I../.. -I/usr/include/libgig -Wreturn-type -ffast-math -O2 -march=athlon64 -pipe -pthread -c lscpevent.cpp -fPIC -DPIC -o .libs/lscpevent.o
lscp.y:1380:18: error: 'yyprhs' was not declared in this scope
for (int i = yyprhs[rule]; yyrhs[i] != -1; ++i)
^
lscp.y:1380:32: error: 'yyrhs' was not declared in this scope
for (int i = yyprhs[rule]; yyrhs[i] != -1; ++i)
^
lscpserver.cpp:1253:101: warning: 'LinuxSampler::MidiInputDevice* LinuxSampler::SamplerChannel::GetMidiInputDevice()' is deprecated (declared at ../Sampler.h:258) [-Wdeprecated-declarations]
INPUT_DEVICE", GetMidiInputDeviceIndex(pSamplerChannel->GetMidiInputDevice()));
^
lscpserver.cpp:1254:73: warning: 'int LinuxSampler::SamplerChannel::GetMidiInputPort()' is deprecated (declared at ../Sampler.h:237) [-Wdeprecated-declarations]
result.Add("MIDI_INPUT_PORT", pSamplerChannel->GetMidiInputPort());
^
In file included from lscpparser.h:41:0,
from lscpserver.h:45,
lscpserver.cpp:1452:161: warning: format '%d' expects argument of type 'int', but argument 4 has type 'std::map<std::basic_string<char>, std::basic_string<char> >::size_type {aka long unsigned int}' [-Wformat=]
ndencyListSize=%d)\n",Driver.c_str(),Parameter.c_str(),DependencyList.size()));
^
../common/global_private.h:39:76: note: in definition of macro 'dmsg'
ne dmsg(debuglevel,x) if (CONFIG_DEBUG_LEVEL >= debuglevel) {printf x; fflush(s
^
lscpserver.cpp:1480:163: warning: format '%d' expects argument of type 'int', but argument 4 has type 'std::map<std::basic_string<char>, std::basic_string<char> >::size_type {aka long unsigned int}' [-Wformat=]
ndencyListSize=%d)\n",Driver.c_str(),Parameter.c_str(),DependencyList.size()));
^
../common/global_private.h:39:76: note: in definition of macro 'dmsg'
ne dmsg(debuglevel,x) if (CONFIG_DEBUG_LEVEL >= debuglevel) {printf x; fflush(s
^
lscpserver.cpp:2004:51: warning: 'void LinuxSampler::SamplerChannel::SetMidiInputPort(int)' is deprecated (declared at ../Sampler.h:169) [-Wdeprecated-declarations]
pSamplerChannel->SetMidiInputPort(MIDIPort);
^
lscpserver.cpp:2035:52: warning: 'void LinuxSampler::SamplerChannel::SetMidiInputDevice(LinuxSampler::MidiInputDevice*)' is deprecated (declared at ../Sampler.h:143) [-Wdeprecated-declarations]
pSamplerChannel->SetMidiInputDevice(pDevice);
^
lscpserver.cpp:2073:52: warning: 'void LinuxSampler::SamplerChannel::SetMidiInputDevice(LinuxSampler::MidiInputDevice*)' is deprecated (declared at ../Sampler.h:143) [-Wdeprecated-declarations]
pSamplerChannel->SetMidiInputDevice(pDevice);
^
lscpserver.cpp:2094:83: warning: 'void LinuxSampler::SamplerChannel::SetMidiInput(LinuxSampler::MidiInputDevice*, int, LinuxSampler::midi_chan_t)' is deprecated (declared at ../Sampler.h:207) [-Wdeprecated-declarations]
pSamplerChannel->SetMidiInput(pDevice, MIDIPort, (midi_chan_t) MIDIChannel);
^
Makefile:441: recipe for target 'lscpparser.lo' failed
make[3]: *** [lscpparser.lo] Error 1
make[3]: *** Waiting for unfinished jobs....
make[3]: Leaving directory '/var/tmp/portage/media-sound/linuxsampler-2.0.0/work/linuxsampler-2.0.0/src/network'
Makefile:674: recipe for target 'all-recursive' failed
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory '/var/tmp/portage/media-sound/linuxsampler-2.0.0/work/linuxsampler-2.0.0/src'
Makefile:496: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/var/tmp/portage/media-sound/linuxsampler-2.0.0/work/linuxsampler-2.0.0'
Makefile:400: recipe for target 'all' failed
make: *** [all] Error 2
there is a related bug w/ the Gentoo ebuild of linuxsampler-2.0.0:

https://bugs.gentoo.org/show_bug.cgi?id=556204

for now the workaround is the upgrade bison >= 3.0.0. hope this helps.

peace, w
Brent Busby
2015-09-11 13:41:52 UTC
Permalink
Post by Wayne DePrince Jr.
https://bugs.gentoo.org/show_bug.cgi?id=556204
for now the workaround is the upgrade bison >= 3.0.0. hope this helps.
That's probably it! Thanks..
Tito Latini
2015-09-11 14:12:14 UTC
Permalink
Post by Brent Busby
Post by Wayne DePrince Jr.
https://bugs.gentoo.org/show_bug.cgi?id=556204
for now the workaround is the upgrade bison >= 3.0.0. hope this helps.
That's probably it! Thanks..
upgrade is a lost of time, it is enough to remove

linuxsampler-2.0.0/src/network/lscpparser.cpp

because it is re-generated during the compilation from the parser generator
installed on the machine (bison 2 or 3).

I have tested the compilation with bison 2.7. It is not science fiction.
Loading...