Compile static praat for CloudLinux


Greg Lessard
 

I have recently movedd to a CloudLinux machine as my webserver. Here's the release description:

CloudLinux release 7.9 (Boris Yegorov)
NAME="CloudLinux"
VERSION="7.9 (Boris Yegorov)"
ID="cloudlinux"
ID_LIKE="rhel fedora centos"
VERSION_ID="7.9"
PRETTY_NAME="CloudLinux 7.9 (Boris Yegorov)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:cloudlinux:cloudlinux:7.9:GA:server"

I need to run on it the server nogui version of praat since it is just called by a web page, draws some intonation curves using a script then stops.

I don't have sudo access to the cloud server so ideally I'd like to do a static compile then ftp just the binary. From the praat makefiles directory the only static compile file I see is the pulse one (not for a server).

Has anyone had any luck with this problem?

Thanks in advance,

Greg 


Boersma Paul
 

Dear Greg,

the link line for for the NoGui edition is currently

LIBS = `$(PKG_CONFIG) --libs pangocairo` -no-pie -lm -static-libgcc -static-libstdc++ -lpthread

If you change this to

LIBS = `$(PKG_CONFIG) --libs pangocairo` -no-pie -lm -static -static-libgcc -static-libstdc++ -lpthread

it may already do what you need.

Best wishes,
Paul

On 2 Feb 2023, at 21:01, lessardg via groups.io <lessardg@...> wrote:

I have recently movedd to a CloudLinux machine as my webserver. Here's the release description:

CloudLinux release 7.9 (Boris Yegorov)
NAME="CloudLinux"
VERSION="7.9 (Boris Yegorov)"
ID="cloudlinux"
ID_LIKE="rhel fedora centos"
VERSION_ID="7.9"
PRETTY_NAME="CloudLinux 7.9 (Boris Yegorov)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:cloudlinux:cloudlinux:7.9:GA:server"

I need to run on it the server nogui version of praat since it is just called by a web page, draws some intonation curves using a script then stops.

I don't have sudo access to the cloud server so ideally I'd like to do a static compile then ftp just the binary. From the praat makefiles directory the only static compile file I see is the pulse one (not for a server).

Has anyone had any luck with this problem?

Thanks in advance,

Greg 

_____

Paul Boersma
Professor of Phonetic Sciences
University of Amsterdam
Spuistraat 134, room 632
1012VB Amsterdam, The Netherlands
http://www.fon.hum.uva.nl/paul/


Greg Lessard
 

Hi Paul,

Thanks for the really speedy reply. I had tried those flags (in a slightly different order) and the compile failed. I tried your suggestion and the compile still failed:

`"pkg-config" --libs pangocairo` -no-pie -lm -static -static-libgcc -static-libstdc++ -lpthread
/usr/bin/ld: cannot find -lpangocairo-1.0: No such file or directory
/usr/bin/ld: cannot find -lpango-1.0: No such file or directory
collect2: error: ld returned 1 exit status

I ran

ldconfig -p | grep libpango and got a hit

libpangocairo-1.0.so.0 (libc6,x86-64) => /lib/x86_64-linux-gnu/libpangocairo-1.0.so.0
libpangocairo-1.0.so (libc6,x86-64) => /lib/x86_64-linux-gnu/libpangocairo-1.0.so

and the same for pango

libpangoxft-1.0.so.0 (libc6,x86-64) => /lib/x86_64-linux-gnu/libpangoxft-1.0.so.0
libpangoxft-1.0.so (libc6,x86-64) => /lib/x86_64-linux-gnu/libpangoxft-1.0.so
libpangomm-1.4.so.1 (libc6,x86-64) => /lib/x86_64-linux-gnu/libpangomm-1.4.so.1
libpangoft2-1.0.so.0 (libc6,x86-64) => /lib/x86_64-linux-gnu/libpangoft2-1.0.so.0
libpangoft2-1.0.so (libc6,x86-64) => /lib/x86_64-linux-gnu/libpangoft2-1.0.so
libpangocairo-1.0.so.0 (libc6,x86-64) => /lib/x86_64-linux-gnu/libpangocairo-1.0.so.0
libpangocairo-1.0.so (libc6,x86-64) => /lib/x86_64-linux-gnu/libpangocairo-1.0.so
libpango-1.0.so.0 (libc6,x86-64) => /lib/x86_64-linux-gnu/libpango-1.0.so.0
libpango-1.0.so (libc6,x86-64) => /lib/x86_64-linux-gnu/libpango-1.0.so

Does any of this suggest a way to fix this?

Again, thanks in advance,

Greg

Envoyé avec la messagerie sécurisée Proton Mail.

------- Original Message -------
jeudi 2 février 2023 à 15:14, Boersma Paul via groups.io <p.p.g.boersma@...> a écrit:

Dear Greg,

the link line for for the NoGui edition is currently

LIBS = `$(PKG_CONFIG) --libs pangocairo` -no-pie -lm -static-libgcc -static-libstdc++ -lpthread

If you change this to

LIBS = `$(PKG_CONFIG) --libs pangocairo` -no-pie -lm -static -static-libgcc -static-libstdc++ -lpthread

it may already do what you need.

Best wishes,
Paul

On 2 Feb 2023, at 21:01, lessardg via groups.io <lessardg@...> wrote:

I have recently movedd to a CloudLinux machine as my webserver. Here's the release description:

CloudLinux release 7.9 (Boris Yegorov)
NAME="CloudLinux"
VERSION="7.9 (Boris Yegorov)"
ID="cloudlinux"
ID_LIKE="rhel fedora centos"
VERSION_ID="7.9"
PRETTY_NAME="CloudLinux 7.9 (Boris Yegorov)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:cloudlinux:cloudlinux:7.9:GA:server"

I need to run on it the server nogui version of praat since it is just called by a web page, draws some intonation curves using a script then stops.

I don't have sudo access to the cloud server so ideally I'd like to do a static compile then ftp just the binary. From the praat makefiles directory the only static compile file I see is the pulse one (not for a server).

Has anyone had any luck with this problem?

Thanks in advance,

Greg 

_____

Paul Boersma
Professor of Phonetic Sciences
University of Amsterdam
Spuistraat 134, room 632
1012VB Amsterdam, The Netherlands
http://www.fon.hum.uva.nl/paul/



Boersma Paul
 

On 2 Feb 2023, at 22:06, Greg Lessard via groups.io <lessardg@...> wrote:

`"pkg-config" --libs pangocairo` -no-pie -lm -static -static-libgcc -static-libstdc++ -lpthread
/usr/bin/ld: cannot find -lpangocairo-1.0: No such file or directory
/usr/bin/ld: cannot find -lpango-1.0: No such file or directory
collect2: error: ld returned 1 exit status

It seems that you don't have the static libraries.

ldconfig -p | grep libpango and got a hit

libpangocairo-1.0.so.0 (libc6,x86-64) => /lib/x86_64-linux-gnu/libpangocairo-1.0.so.0
libpangocairo-1.0.so (libc6,x86-64) => /lib/x86_64-linux-gnu/libpangocairo-1.0.so



yes, for me this gives the same result (with "/usr" prepended, but that doesn't matter). But then try

ls -al  /lib/x86_64-linux-gnu | grep pango

When I do that, I see that every .so (share object) file is accompanied with a corresponding .a (static archive) file:

lrwxrwxrwx   1 root root       23 Jan 29  2019 libcogl-pango.so.20 -> libcogl-pango.so.20.4.2
-rw-r--r--   1 root root    34656 Jan 29  2019 libcogl-pango.so.20.4.2
-rw-r--r--   1 root root   526040 Aug 21  2018 libpango-1.0.a
lrwxrwxrwx   1 root root       25 Aug 21  2018 libpango-1.0.so -> libpango-1.0.so.0.4000.14
lrwxrwxrwx   1 root root       25 Aug 21  2018 libpango-1.0.so.0 -> libpango-1.0.so.0.4000.14
-rw-r--r--   1 root root   313264 Aug 21  2018 libpango-1.0.so.0.4000.14
-rw-r--r--   1 root root    81952 Aug 21  2018 libpangocairo-1.0.a
lrwxrwxrwx   1 root root       30 Aug 21  2018 libpangocairo-1.0.so -> libpangocairo-1.0.so.0.4000.14
lrwxrwxrwx   1 root root       30 Aug 21  2018 libpangocairo-1.0.so.0 -> libpangocairo-1.0.so.0.4000.14
-rw-r--r--   1 root root    51096 Aug 21  2018 libpangocairo-1.0.so.0.4000.14
-rw-r--r--   1 root root   142432 Aug 21  2018 libpangoft2-1.0.a
lrwxrwxrwx   1 root root       28 Aug 21  2018 libpangoft2-1.0.so -> libpangoft2-1.0.so.0.4000.14
lrwxrwxrwx   1 root root       28 Aug 21  2018 libpangoft2-1.0.so.0 -> libpangoft2-1.0.so.0.4000.14
-rw-r--r--   1 root root    87904 Aug 21  2018 libpangoft2-1.0.so.0.4000.14
-rw-r--r--   1 root root    45584 Aug 21  2018 libpangoxft-1.0.a
lrwxrwxrwx   1 root root       28 Aug 21  2018 libpangoxft-1.0.so -> libpangoxft-1.0.so.0.4000.14
lrwxrwxrwx   1 root root       28 Aug 21  2018 libpangoxft-1.0.so.0 -> libpangoxft-1.0.so.0.4000.14
-rw-r--r--   1 root root    34656 Aug 21  2018 libpangoxft-1.0.so.0.4000.14

My prediction is that you are missing the .a files.

Best wishes,
Paul
_____

Paul Boersma
Professor of Phonetic Sciences
University of Amsterdam
Spuistraat 134, room 632
1012VB Amsterdam, The Netherlands
http://www.fon.hum.uva.nl/paul/


Greg Lessard
 

Hi Paul,

You're correct about the static libraries. So I'm one step further along. With luck, the last hitch is that CloudLinux uses an earlier glibc than my current computer. ldd --version on CloudLinux gives me 2.17, while my Linux Mint machine uses 2.35. The complaint on CloudLinux looks like this:

./praat_nogui: /lib64/libm.so.6: version `GLIBC_2.27' not found (required by ./praat_nogui)
./praat_nogui: /lib64/libm.so.6: version `GLIBC_2.29' not found (required by ./praat_nogui)
./praat_nogui: /lib64/libm.so.6: version `GLIBC_2.35' not found (required by ./praat_nogui)
./praat_nogui: /lib64/libc.so.6: version `GLIBC_2.33' not found (required by ./praat_nogui)
./praat_nogui: /lib64/libc.so.6: version `GLIBC_2.32' not found (required by ./praat_nogui)
./praat_nogui: /lib64/libc.so.6: version `GLIBC_2.34' not found (required by ./praat_nogui)
./praat_nogui: /lib64/libthai.so.0: version `LIBTHAI_0.1.25' not found (required by /home/hwfmp556/.cagefs/usr/lib/x86_64-linux-gnu/libpango-1.0.so.0

I'll probably need to install some older version of some linux distro on a virtual machine and hope praat will compile ok. The joys of dependency hell...

In any case, thanks again  for your help. I think the rest will be something I'll have to wrestle with myself. If I find a solution I'll post it, since CloudLinux is a fairly popular resource in webhosting.

Regards,

Greg

Envoyé avec la messagerie sécurisée Proton Mail.

------- Original Message -------
vendredi 3 février 2023 à 16:51, Boersma Paul via groups.io <p.p.g.boersma@...> a écrit:

On 2 Feb 2023, at 22:06, Greg Lessard via groups.io <lessardg@...> wrote:

`"pkg-config" --libs pangocairo` -no-pie -lm -static -static-libgcc -static-libstdc++ -lpthread
/usr/bin/ld: cannot find -lpangocairo-1.0: No such file or directory
/usr/bin/ld: cannot find -lpango-1.0: No such file or directory
collect2: error: ld returned 1 exit status

It seems that you don't have the static libraries.

ldconfig -p | grep libpango and got a hit

libpangocairo-1.0.so.0 (libc6,x86-64) => /lib/x86_64-linux-gnu/libpangocairo-1.0.so.0
libpangocairo-1.0.so (libc6,x86-64) => /lib/x86_64-linux-gnu/libpangocairo-1.0.so



yes, for me this gives the same result (with "/usr" prepended, but that doesn't matter). But then try

ls -al  /lib/x86_64-linux-gnu | grep pango

When I do that, I see that every .so (share object) file is accompanied with a corresponding .a (static archive) file:

lrwxrwxrwx   1 root root       23 Jan 29  2019 libcogl-pango.so.20 -> libcogl-pango.so.20.4.2
-rw-r--r--   1 root root    34656 Jan 29  2019 libcogl-pango.so.20.4.2
-rw-r--r--   1 root root   526040 Aug 21  2018 libpango-1.0.a
lrwxrwxrwx   1 root root       25 Aug 21  2018 libpango-1.0.so -> libpango-1.0.so.0.4000.14
lrwxrwxrwx   1 root root       25 Aug 21  2018 libpango-1.0.so.0 -> libpango-1.0.so.0.4000.14
-rw-r--r--   1 root root   313264 Aug 21  2018 libpango-1.0.so.0.4000.14
-rw-r--r--   1 root root    81952 Aug 21  2018 libpangocairo-1.0.a
lrwxrwxrwx   1 root root       30 Aug 21  2018 libpangocairo-1.0.so -> libpangocairo-1.0.so.0.4000.14
lrwxrwxrwx   1 root root       30 Aug 21  2018 libpangocairo-1.0.so.0 -> libpangocairo-1.0.so.0.4000.14
-rw-r--r--   1 root root    51096 Aug 21  2018 libpangocairo-1.0.so.0.4000.14
-rw-r--r--   1 root root   142432 Aug 21  2018 libpangoft2-1.0.a
lrwxrwxrwx   1 root root       28 Aug 21  2018 libpangoft2-1.0.so -> libpangoft2-1.0.so.0.4000.14
lrwxrwxrwx   1 root root       28 Aug 21  2018 libpangoft2-1.0.so.0 -> libpangoft2-1.0.so.0.4000.14
-rw-r--r--   1 root root    87904 Aug 21  2018 libpangoft2-1.0.so.0.4000.14
-rw-r--r--   1 root root    45584 Aug 21  2018 libpangoxft-1.0.a
lrwxrwxrwx   1 root root       28 Aug 21  2018 libpangoxft-1.0.so -> libpangoxft-1.0.so.0.4000.14
lrwxrwxrwx   1 root root       28 Aug 21  2018 libpangoxft-1.0.so.0 -> libpangoxft-1.0.so.0.4000.14
-rw-r--r--   1 root root    34656 Aug 21  2018 libpangoxft-1.0.so.0.4000.14

My prediction is that you are missing the .a files.

Best wishes,
Paul
_____

Paul Boersma
Professor of Phonetic Sciences
University of Amsterdam
Spuistraat 134, room 632
1012VB Amsterdam, The Netherlands
http://www.fon.hum.uva.nl/paul/