pp icon indicating copy to clipboard operation
pp copied to clipboard

Cannot run >2.3.4 on Ubuntu 16.04

Open holmboe opened this issue 7 years ago • 3 comments

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.

holmboe avatar Jan 03 '19 19:01 holmboe

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:

  • install stack (https://docs.haskellstack.org/en/stable/install_and_upgrade/#linux)
  • unpack pp.tgz
  • make install This should work on most decent Linux distributions.

CDSoft avatar Jan 03 '19 19:01 CDSoft

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:

holmboe avatar Jan 06 '19 01:01 holmboe

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.

CDSoft avatar Dec 22 '23 16:12 CDSoft