3

I need libpangox-1.0-0:i386 to build a package under Ubuntu 20.04LTS, but it is not currently available. I have libpangox-1.0-0 in my system.

The 32 bit version is available for 19.10 and below at https://pkgs.org/download/libpangox-1.0-0 https://ubuntu.pkgs.org/19.10/ubuntu-universe-i386/libpangox-1.0-0_0.0.2-5build1_i386.deb.html

  1. What are alternative ways to obtain this?

  2. If I get the .deb file for 19.10 and run sudo gdebi libpangox-1.0-0_0.0.2-5build1_i386.deb, does it simply store files listed under "Files" in the web page, without any further changes to the system other than registering the package for dpkg?

    Can I give it a shot, try if it works, and if not simply remove the package? (there might be some issues, since files under /usr/share/doc/libpangox-1.0-0, even if only documentation, are shared among 32 bit and 64 bit versions). Note that the files in the package are only the so and a soft link to it, /usr/lib/i386-linux-gnu/libpangox-1.0.so.0 and /usr/lib/i386-linux-gnu/libpangox-1.0.so.0.0.0.

Notes: I never built something like this from source.

EDIT:

To avoid messing with dpkg, as a first attempt I expanded the .deb file, and copied the so and soft link by hand into /usr/lib/i386-linux-gnu. Then

$ export LD_LIBRARY_PATH="/usr/lib/i386-linux-gnu"
$ fakeroot debian/rules binary
...
dpkg-shlibdeps: error: no dependency information found for /usr/lib/i386-linux-gnu/libpangox-1.0.so.0 (used by debian/iscan/usr/bin/iscan)
Hint: check if the library actually comes from a package.

which led me to trying three workarounds at the same time:

  1. Adding to debian/rules
    override_dh_shlibdeps:
    (tab)   dh_shlibdeps --dpkg-shlibdeps-params=--ignore-missing-info
  1. $ export DEB_DH_SHLIBDEPS_ARGS_ALL=--dpkg-shlibdeps-params=--ignore-missing-info

  2. $ export DEB_BUILD_OPTIONS=nocheck

None of this removed the error above.

EDIT #2.

Trying to build the library, I got the error

$ debuild -a i386
...
dpkg-deb: building package 'libpangox-1.0-dev' in '../libpangox-1.0-dev_0.0.2-5ubuntu1_i386.deb'.
 dpkg-genbuildinfo
 dpkg-genchanges  >../pangox-compat_0.0.2-5ubuntu1_i386.changes
dpkg-genchanges: info: not including original source code in upload
 dpkg-source --after-build .
dpkg-source: info: using options from pangox-compat-0.0.2/debian/source/options: --compression=xz
dpkg-buildpackage: info: binary and diff upload (original source NOT included)
debuild: fatal error at line 1062:
can't open pangox-compat_0.0.2-5ubuntu1_amd64.changes for reading: No such file or directory

Related:

https://stackoverflow.com/questions/11238134/dpkg-shlibdeps-error-no-dependency-information-found-for

https://linux.debian.user.narkive.com/tVuR0mKc/package-shared-library-with-application

https://github.com/SpiderLabs/ModSecurity-nginx/issues/16

https://www.man7.org/linux/man-pages/man1/dpkg-shlibdeps.1.html

https://ubuntu.com/blog/statement-on-32-bit-i386-packages-for-ubuntu-19-10-and-20-04-lts

2 Answers2

10

I too had this issue of missing libpangox-1.0.so.0 on Ubuntu 21.04.

I was able to work around this issue by creating a softlink to the pangoxft module to get this working, by executing this command.

sudo ln -s /usr/lib/x86_64-linux-gnu/libpangoxft-1.0.so.0 /usr/lib/x86_64-linux-gnu/libpangox-1.0.so.0

Hope this helps.

Spurgeon
  • 101
  • 1
  • 4
2

At first you need to enable all deb-src (Source Code) repositories using Software & Updates (software-properties-gtk). Then confirm refreshing package lists or run sudo apt-get update manually.

Then get the source code and compile it for 32-bit with command below

# get build tools
sudo apt-get install devscripts gcc-i686-linux-gnu
# get build dependencies for 32-bit (i386) architecture
sudo apt-get build-dep -a i386 libpangox-1.0-0

# get source
cd ~/Downloads
apt-get source libpangox-1.0-0
cd pangox-compat-0.0.2

# compile source for i386
debuild -a i386

and finally install compiled packages with

sudo apt-get install ../libpangox-1.0-0_0.0.2-5ubuntu1_i386.deb  ../libpangox-1.0-dev_0.0.2-5ubuntu1_i386.deb
N0rbert
  • 103,263