Building jami on ubuntu 22.04 (jammy)

I am trying to build jami since the packaged version crashes and gives me a black screen where incoming video should be.
I get

  • …/bootstrap
    scripts/install.sh: line 94: …/bootstrap: No such file or directory
    when I run ./build.py --install
    I had previous done an init.
    There are no files in:
    find daemon
    daemon
    daemon/contrib
    daemon/contrib/native
    I have followed all the directions. On the documentation for building after the dependencies it jumps to a jami developer manual with no further info on building it. I was also following the README.rst directions from the git repository. I never saw an appropriate git clone instruction there. I had one message that said that it wasn’t a git repostitory. So I did a git --init.

Where did you get the sources ? git clone https://review.jami.net/jami-client-qt ? This should give your git repository

I think I found out what was causing the black screen. I am waiting to test it with someone.
It was caused by hardware acceleration. I apt-purged the latest mesa graphics drivers and installed the nvidia proprietary drivers. I then reinstalled the virtualbox packages. There were different versions of gcc between the kernel and virtualbox. Somehow I do not get a black screen with vlc and I hope that jami will also work. In the meantime I will use your link to the repo and try to build jami.

:person_facepalming:I guess that’s deprecated jami-project repo.

I am not sure where I got that deprecated link. Anyways I used yours and I it started to build.
It can’t seem to find my libqt-jami.
ii libqt-jami 6.5.3-0 amd64 Custom build of Qt framework used by the Jami Qt client.
The root directory of which is /usr/lib/libqt-jami/
I used this:
./build.py --init --qt=/usr/lib/libqt-jami/

The precompiled jami package did work when I tested it today. It got a little hung up though when the same person tried to call me on his cell phone while I was talking to him on his computer.

libqt-jami is a package available on dl.jami.net, but any Qt 6.5.3 will do

It is installed but the script is not finding it. Perhaps an environmental variable needs to be set.
The output of “dpkg -l libqt-jami”
“ii libqt-jami 6.5.3-0 amd64 Custom build of Qt framework used by the Jami Qt client.”
“ii” means it is installed
I tried one environmental variable but it did not work. Perhaps I need to point it to a certain subdirectory like “bin”.

No there is nothing to find. /Usr/lib/libqt-jami is the path . (After --init it’s --install)

I did a --clean and it still did not find it. It is finding my other installation of an earlier version.
make[2]: Leaving directory ‘/usr/src/jami-client-qt/daemon’
make[1]: Leaving directory ‘/usr/src/jami-client-qt/daemon’

  • ‘[’ -z ‘’ ‘]’
  • sys_qtver=
  • command -v qmake6
    ++ qmake6 -v
  • sys_qtver=‘QMake version 3.1
    Using Qt version 6.2.4 in /usr/lib/x86_64-linux-gnu’
  • sys_qtver=’ 6.2.4 in /usr/lib/x86_64-linux-gnu’
  • sys_qtver=’ 6.2.4’
    ++ echo ’ 6.2.4’
    ++ cut -d. -f 2
  • installed_qtver=2
    ++ echo 6.4
    ++ cut -d. -f 2
  • required_qtver=4
  • [[ 2 -ge 4 ]]
  • echo ‘No valid Qt found’
    No valid Qt found
  • exit 1
    Traceback (most recent call last):
    File “/usr/src/jami-client-qt/./build.py”, line 826, in
    main()
    File “/usr/src/jami-client-qt/./build.py”, line 801, in main
    run_install(parsed_args)
    File “/usr/src/jami-client-qt/./build.py”, line 443, in run_install
    return subprocess.run(command, env=environ, check=True)
    File “/usr/lib/python3.10/subprocess.py”, line 526, in run
    raise CalledProcessError(retcode, process.args,
    subprocess.CalledProcessError: Command ‘[‘extras/scripts/install.sh’, ‘-p’, ‘8’]’ returned non-zero exit status 1.

6.2.4 is not libqt-jami for sure, looks a system one

Yes it is a system one. How do I make it find /usr/lib/qt-jami?

Does ls /usr/lib/libqt-jami returns something?

Cause on all the ubuntu 22.04 we’re using there is nothing to do. --install --qt /usr/lib/libqt-jami is fine.

ls -al /usr/lib/libqt-jami
total 248
drwxr-xr-x 15 root root 4096 Dec 21 09:41 .
drwxr-xr-x 266 root root 36864 Dec 25 21:08 …
drwxr-xr-x 2 root root 4096 Dec 21 09:42 bin
drwxr-xr-x 4 root root 4096 Nov 1 17:19 doc
drwxr-xr-x 144 root root 4096 Dec 21 09:41 include
drwxr-xr-x 5 root root 90112 Dec 21 09:42 lib
drwxr-xr-x 2 root root 4096 Dec 21 09:42 libexec
drwxr-xr-x 2 root root 16384 Dec 21 09:42 metatypes
drwxr-xr-x 64 root root 4096 Dec 21 09:42 mkspecs
drwxr-xr-x 2 root root 24576 Dec 21 09:42 modules
drwxr-xr-x 2 root root 4096 Dec 21 09:42 phrasebooks
drwxr-xr-x 35 root root 4096 Dec 21 09:41 plugins
drwxr-xr-x 27 root root 4096 Dec 21 09:42 qml
drwxr-xr-x 2 root root 4096 Dec 21 09:42 resources
drwxr-xr-x 3 root root 36864 Dec 21 09:42 translations

After doing git clean -ixfd can you provide the log for:

git rev-parse HEAD

./build.py --init --qt /usr/lib/libqt-jami

and

./build.py --install --qt /usr/lib/libqt-jami

source code has

while getopts gsc:dQ:P:p:uWwa:A OPT; do
case “$OPT” in
g)
global=‘true’
;;
s)
static=‘-DENABLE_STATIC=true’
;;
d)
debug=true
;;
Q)
qtpath=“${OPTARG}”
;;
So Q /usr/lib/libqt-jami is probably not being set

git rev-parse HEAD
4ebb881be4baab197927228faabea49b6e522872

What file for the logs do you want? There are many log files.

``

./build.py --init --qt /usr/lib/libqt-jami

and

./build.py --install --qt /usr/lib/libqt-jami

Oh OK The terminal log:
[ 98%] Building CXX object CMakeFiles/jami.dir/src/app/platform/x11/pttlistener.cpp.o
[100%] Building CXX object CMakeFiles/jami.dir/jami_autogen/ISMKEKEPX5/qrc_resources.cpp.o
[100%] Building CXX object CMakeFiles/jami.dir/jami_autogen/ISMKEKEPX5/qrc_qml.cpp.o
[100%] Linking CXX executable jami
/usr/bin/ld: 3rdparty/md4c/src/libmd4c-html.a(md4c-html.c.o): relocation R_X86_64_32 against `.rodata.str1.1’ can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: failed to set dynamic section sizes: bad value
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/jami.dir/build.make:1668: jami] Error 1
make[1]: *** [CMakeFiles/Makefile2:222: CMakeFiles/jami.dir/all] Error 2
make: *** [Makefile:156: all] Error 2
Traceback (most recent call last):
File “/usr/src/jami-client-qt/./build.py”, line 826, in
main()
File “/usr/src/jami-client-qt/./build.py”, line 801, in main
run_install(parsed_args)
File “/usr/src/jami-client-qt/./build.py”, line 443, in run_install
return subprocess.run(command, env=environ, check=True)
File “/usr/lib/python3.10/subprocess.py”, line 526, in run
raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command ‘[‘extras/scripts/install.sh’, ‘-p’, ‘8’, ‘-Q’, ‘/usr/lib/libqt-jami’]’ returned non-zero exit status 2.

I did a pull again for the latest soiurce and this still does not build.
[ 80%] Linking CXX executable jami
/usr/bin/ld: 3rdparty/md4c/src/libmd4c-html.a(md4c-html.c.o): relocation R_X86_64_32 against `.rodata.str1.1’ can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: failed to set dynamic section sizes: bad value
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/jami.dir/build.make:1668: jami] Error 1
make[1]: *** [CMakeFiles/Makefile2:222: CMakeFiles/jami.dir/all] Error 2
make: *** [Makefile:156: all] Error 2
Traceback (most recent call last):
File “/usr/src/jami-client-qt/./build.py”, line 826, in
main()
File “/usr/src/jami-client-qt/./build.py”, line 801, in main
run_install(parsed_args)
File “/usr/src/jami-client-qt/./build.py”, line 443, in run_install
return subprocess.run(command, env=environ, check=True)
File “/usr/lib/python3.10/subprocess.py”, line 526, in run
raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command ‘[‘extras/scripts/install.sh’, ‘-p’, ‘8’, ‘-Q’, ‘/usr/lib/libqt-jami’]’ returned non-zero exit status 2.

Perhaps I need a different version of Ubuntu to get it to compile. I use 22.04 the latest stable version.

Can you do a git clean -ixfd to clean all files (I use the same version of Ubuntu as a developer every day)