Topics

Linux command line binary for 0.974? #resolved #linux


Dayyan Smith
 

Hi all,

Is there a linux command line binary available for 0.974?


Dayyan


Johan Vromans
 

Currently not, but I could make one. However, installing ChordPro on Linux is usually trivial. Is there a specific reason you would want a prebuilt binary?


Dayyan Smith
 

I’m using ChordPro to generate PDFs as part of a website build and can’t install anything in the build environment with cpan. But using the binary directly works.


Dayyan Smith
 

Are there instructions for how to compile the binary?


Johan Vromans
 

It should be (relatively) straightforward:

  • Install PAR::Packer if necessary
  • Copy (from github) pp/common/PDF_API2_Bundle.pm (this file was accidentally left out of the kit)
  • Cd to the pp/linux directory and type pp -u --output=chordpro @chordpro.pp ../../script/chordpro.pl

This should produce a standalone linux binary.


Dayyan Smith
 

Thank you!
 
Where can I find pp/common/PDF_API2_Bundle.pm? I can't see it on GitHub.


Johan Vromans
 

It is now :)


Dayyan Smith
 

Thanks! Now I set everything up, but get the following error:

root@8fca493ebc28:/chordpro/pp/linux# pp -u --output=chordpro @chordpro.pp ../../script/chordpro.pl
Couldn't retrieve data from file chordpro.pp.deps. Building new cache.
Use of uninitialized value $key in exists at /usr/local/lib/perl5/site_perl/5.30.2/Module/ScanDeps/Cache.pm line 67.
Use of uninitialized value $key in hash element at /usr/local/lib/perl5/site_perl/5.30.2/Module/ScanDeps/Cache.pm line 80.
Use of uninitialized value $key in exists at /usr/local/lib/perl5/site_perl/5.30.2/Module/ScanDeps/Cache.pm line 67.
Use of uninitialized value $key in hash element at /usr/local/lib/perl5/site_perl/5.30.2/Module/ScanDeps/Cache.pm line 68.
Use of uninitialized value $key in hash element at /usr/local/lib/perl5/site_perl/5.30.2/Module/ScanDeps/Cache.pm line 80.

Did I miss something?


Johan Vromans
 

No, these are 'normal' warnings. Just try the resultant binary to verify.


Dayyan Smith
 

The compilation failed at first, but after also installing App::Packager and String::Interpolate::Named everything works. Thank you!


Dayyan Smith
 

When trying to generate a PDF using the binary, I got the following:

root@6ed06946d3fc:/chordpro/pp/linux# ./chordpro song.pro -o song.pdf
No backend for PDF
Missing PDF::API package
BEGIN failed--compilation aborted at /tmp/par-726f6f74/cache-b6998e24ef79670b031025f901744420bc0cc477/inc/lib/App/Music/ChordPro/Output/PDF.pm line 22.
Compilation failed in require at (eval 52) line 1.
root@6ed06946d3fc:/chordpro/pp/linux#

After installing PDF::API2, it now seems to work.


Johan Vromans
 

Yes, you should install all dependencies first. This is not elegantly handled by the packager.

I'll see if I can make this easier...


Johan Vromans
 

After installing PDF::API2, it now seems to work.

I assume you did a rebuild after install PDF::API2?


Dayyan Smith
 

Yes exactly!