CDSoft / pp

PP - Generic preprocessor (with pandoc in mind) - macros, literate programming, diagrams, scripts...
http://cdelord.fr/pp
GNU General Public License v3.0
252 stars 21 forks source link

Cannot run >2.3.4 on Ubuntu 16.04 #66

Open holmboe opened 5 years ago

holmboe commented 5 years ago

When running pp version later than 2.3.4 on Ubuntu 16.04 it fails:

vagrant@vagrant:~$ ./pp
./pp: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.27' not found (required by ./pp)

On Ubuntu 16.04, where pp fails to run:

vagrant@vagrant:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 16.04.4 LTS
Release:        16.04
Codename:       xenial
vagrant@vagrant:~$ objdump -T /lib/x86_64-linux-gnu/libm.so.6 | grep -oEi 'GLIBC_[0-9]*.[0-9]*.[0-9]*'| sort | uniq
GLIBC_2.15
GLIBC_2.15 
GLIBC_2.18
GLIBC_2.18 
GLIBC_2.2.5
GLIBC_2.23
GLIBC_2.23 
GLIBC_2.4
GLIBC_2.4 
GLIBC_PR

The same commands on Ubuntu 18.04, where pp runs without problems:

vagrant@vagrant:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 18.04.1 LTS
Release:        18.04
Codename:       bionic
vagrant@vagrant:~$ objdump -T /lib/x86_64-linux-gnu/libm.so.6 | grep -oEi 'GLIBC_[0-9]*.[0-9]*.[0-9]*'| sort | uniq
GLIBC_2.15
GLIBC_2.15 
GLIBC_2.18
GLIBC_2.18 
GLIBC_2.23
GLIBC_2.23 
GLIBC_2.24
GLIBC_2.24 
GLIBC_2.25
GLIBC_2.2.5
GLIBC_2.25 
GLIBC_2.26
GLIBC_2.26 
GLIBC_2.27
GLIBC_2.27 
GLIBC_2.4
GLIBC_2.4 
GLIBC_PR

This was tested with 2.3.4, 2.7.2 and a few versions in between those two.

CDSoft commented 5 years ago

Binaries are compiled on Fedora. They may or may not work on other Linux distributions. I highly recommend to compile pp from the sources on your OS:

holmboe commented 5 years ago

Thanks for the information and instructions. My solution will likely be to upgrade the build containers from Ubuntu 16.04 to 18.04, and if there are any other showstoppers going that route I will resort to building pp in the 16.04 container.

A tip for your release process: use Travis CI to build your Git tags and then upload them to Github Releases (see https://docs.travis-ci.com/user/deployment/releases). In that way you can build releases with older distros than you are running on your development machine.

Feel free to close this issue. :+1:

CDSoft commented 6 months ago

Sorry for the late reply... Please keep in mind that pp is not supported anymore, it's hard to deploy. For new projects I suggest ypp which is is based on a Lua interpreter and way easier to compile and install and binaries are easier to produce (thanks to zig) and deploy (see hey).

E.g. to install ypp:

curl https://cdelord.fr/hey/ypp-x86_64-linux-musl | sh

The binaries compiled with musl should be more portable.