Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Trouble installing audiogram on CentOS 7 #53

Closed
moundog opened this issue Oct 7, 2016 · 5 comments
Closed

Trouble installing audiogram on CentOS 7 #53

moundog opened this issue Oct 7, 2016 · 5 comments

Comments

@moundog
Copy link

moundog commented Oct 7, 2016

Hi,

I'm having trouble installing audiogram on CentOS 7 after successfully installing all the dependencies.

[krichamo@ln-web-zrh-01 audiogram]$ npm install

> waveform@3.0.1 install /home/krichamo/audiogram/node_modules/waveform
> node-gyp rebuild

make: Entering directory `/home/krichamo/audiogram/node_modules/waveform/build'
  CC(target) Release/obj.target/waveform/waveform.o
../waveform.c: In function ‘main’:
../waveform.c:227:5: warning: implicit declaration of function ‘groove_init’ [-Wimplicit-function-declaration]
     groove_init();
     ^
../waveform.c:228:12: error: ‘groove_finish’ undeclared (first use in this function)
     atexit(groove_finish);
            ^
../waveform.c:228:12: note: each undeclared identifier is reported only once for each function it appears in
../waveform.c:230:12: warning: passing argument 1 of ‘groove_file_open’ from incompatible pointer type [enabled by default]
     struct GrooveFile *file = groove_file_open(input_filename);
            ^
In file included from ../waveform.c:4:0:
/usr/local/include/groove/groove.h:391:19: note: expected ‘struct GrooveFile *’ but argument is of type ‘char *’
 GROOVE_EXPORT int groove_file_open(struct GrooveFile *file,
                   ^
../waveform.c:230:12: error: too few arguments to function ‘groove_file_open’
     struct GrooveFile *file = groove_file_open(input_filename);
            ^
In file included from ../waveform.c:4:0:
/usr/local/include/groove/groove.h:391:19: note: declared here
 GROOVE_EXPORT int groove_file_open(struct GrooveFile *file,
                   ^
../waveform.c:235:12: error: too few arguments to function ‘groove_playlist_create’
     struct GroovePlaylist *playlist = groove_playlist_create();
            ^
In file included from ../waveform.c:4:0:
/usr/local/include/groove/groove.h:429:38: note: declared here
 GROOVE_EXPORT struct GroovePlaylist *groove_playlist_create(struct Groove *);
                                      ^
../waveform.c:236:45: error: ‘GROOVE_ANY_SINK_FULL’ undeclared (first use in this function)
     groove_playlist_set_fill_mode(playlist, GROOVE_ANY_SINK_FULL);
                                             ^
../waveform.c:238:12: error: too few arguments to function ‘groove_sink_create’
     struct GrooveSink *sink = groove_sink_create();
            ^
In file included from ../waveform.c:4:0:
/usr/local/include/groove/groove.h:491:34: note: declared here
 GROOVE_EXPORT struct GrooveSink *groove_sink_create(struct Groove *);
                                  ^
../waveform.c:239:9: error: ‘struct GrooveSink’ has no member named ‘audio_format’
     sink->audio_format.sample_rate = 44100;
         ^
../waveform.c:240:9: error: ‘struct GrooveSink’ has no member named ‘audio_format’
     sink->audio_format.channel_layout = GROOVE_CH_LAYOUT_STEREO;
         ^
../waveform.c:240:41: error: ‘GROOVE_CH_LAYOUT_STEREO’ undeclared (first use in this function)
     sink->audio_format.channel_layout = GROOVE_CH_LAYOUT_STEREO;
                                         ^
../waveform.c:241:9: error: ‘struct GrooveSink’ has no member named ‘audio_format’
     sink->audio_format.sample_fmt = GROOVE_SAMPLE_FMT_S16;
         ^
../waveform.c:241:37: error: ‘GROOVE_SAMPLE_FMT_S16’ undeclared (first use in this function)
     sink->audio_format.sample_fmt = GROOVE_SAMPLE_FMT_S16;
                                     ^
../waveform.c:279:9: error: too few arguments to function ‘groove_encoder_create’
         encoder = groove_encoder_create();
         ^
In file included from ../waveform.c:5:0:
/usr/local/include/groove/encoder.h:70:37: note: declared here
 GROOVE_EXPORT struct GrooveEncoder *groove_encoder_create(struct Groove *);
                                     ^
../waveform.c:295:37: error: ‘struct GrooveAudioFormat’ has no member named ‘channel_layout’
         encoder->target_audio_format.channel_layout = GROOVE_CH_LAYOUT_STEREO;
                                     ^
../waveform.c:296:37: error: ‘struct GrooveAudioFormat’ has no member named ‘sample_fmt’
         encoder->target_audio_format.sample_fmt = GROOVE_SAMPLE_FMT_S16;
                                     ^
make: *** [Release/obj.target/waveform/waveform.o] Error 1
make: Leaving directory `/home/krichamo/audiogram/node_modules/waveform/build'
gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:276:23)
gyp ERR! stack     at emitTwo (events.js:87:13)
gyp ERR! stack     at ChildProcess.emit (events.js:172:7)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:200:12)
gyp ERR! System Linux 3.10.0-229.14.1.el7.x86_64
gyp ERR! command "/usr/local/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /home/krichamo/audiogram/node_modules/waveform
gyp ERR! node -v v4.6.0
gyp ERR! node-gyp -v v3.4.0
gyp ERR! not ok
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^1.0.0 (node_modules/chokidar/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.0.14: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
npm ERR! Linux 3.10.0-229.14.1.el7.x86_64
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install"
npm ERR! node v4.6.0
npm ERR! npm  v3.10.8
npm ERR! code ELIFECYCLE

npm ERR! waveform@3.0.1 install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the waveform@3.0.1 install script 'node-gyp rebuild'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the waveform package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node-gyp rebuild
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs waveform
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls waveform
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     /home/krichamo/audiogram/npm-debug.log

npm-debug.txt

Any help would be greatly appreciated.

Thanks,

Mounir

@veltman
Copy link
Contributor

veltman commented Oct 7, 2016

Based on that error, it looks like the version of libgroove installed from the package manager for that OS is broken or won't work on CentOS for some other reason. I see two options (I'd recommend #1):

  1. Switch to the alpha branch and use that instead. It no longer requires libgroove.
  2. Follow the instructions to build libgroove from source.

@moundog
Copy link
Author

moundog commented Oct 7, 2016

Thanks for the quick answer. I actually built libgroove from source since I couldn't find any packages for CentOS. I will try the alpha branch.

@moundog
Copy link
Author

moundog commented Oct 8, 2016

The alpha branch works perfectly on CentOS 7. I can share the installation steps if somebody is interested. Thanks again for your help.

@moundog moundog closed this as completed Oct 8, 2016
@wesrcoastradio
Copy link

Hi moundog, could you please share the installation steps for CentOS 7? Many thanks....

@moundog
Copy link
Author

moundog commented Feb 10, 2017

Hi wesrcoastradio,

Here are the installation steps for CentOS 7.

As root:

  • Update your system
yum update
  • Install nodejs
curl -sL https://rpm.nodesource.com/setup_4.x | bash -
yum install nodejs
  • Update npm
npm install -g npm
  • Install node-canvas dependencies
yum install cairo cairo-devel cairomm-devel libjpeg-turbo-devel pango pango-devel pangomm pangomm-devel giflib-devel
  • Install ffmpeg
rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro
rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-1.el7.nux.noarch.rpm
yum update
yum install ffmpeg ffmpeg-devel
cd /usr/include/
ln -s ffmpeg/* .
  • Install node-gyp
npm install -g node-gyp

As a normal user:

  • Install audiogram
git clone https://github.com/nypublicradio/audiogram.git
cd audiogram
npm install

Note: You don't need the alpha branch anymore as the master branch no longer requires libgroove.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants