Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 19 Jun 2020 00:00:43 -0400
From:      "Mikhail T." <mi+t@aldan.algebra.com>
To:        freebsd-emulation@FreeBSD.org, clement@FreeBSD.org, Tijl Coosemans <tijl@FreeBSD.org>
Subject:   How to properly install a Linux desktop app?
Message-ID:  <c3eaed2d-5654-5656-ef87-89c1e8cbdcc8@aldan.algebra.com>

next in thread | raw e-mail | index | archive | help
Hello!

I'm preparing a port of a Linux application (Zoom conferencing client).

The vendor (zoom.us) offers RPMs for both x86_64 and i686, which makes 
it tempting to just USE_LINUX_RPM. However, that knob unconditionally 
turns on the USE_LINUX_PREFIX, which bsd.port.mk says /not/ to use "for 
leaf ports (e.g. a game or program)".

Not using the USE_LINUX_PREFIX, poses another challenge. Zoom comes with 
quite a few Linux libraries of its own, which are all dumped into a 
non-standard location. My port is installing a 
/compat/linux/etc/ld.so.conf.d/zoom.conf listing that location, but that 
will be ignored unless ldconfig -- a Linux one -- is invoked, wouldn't 
it be?

Finally, if I do rely USE_LINUX_PREFIX and the bulk of the port gets 
installed under /compat/linux/opt/zoom, there is a problem with the 
DESKTOP_ENTRIES -- because they would be under /compat/linux too, 
instead of under ${LOCALBASE}.

    usr/share/applications/Zoom.desktop
    usr/share/mime/packages/zoom.xml
    usr/share/pixmaps/Zoom.png
    usr/share/pixmaps/application-x-zoom.png

(I think, the current setting of DESKTOPDIR based on PREFIX is incorrect 
-- it should be under LOCALBASE instead. But that's a separate story.)

What are my options with this new port?

 1. Follow the examples of existing ports (like citrix_ica):
     1. Do not use the USE_LINUX_RPM.
     2. Do not bother with Linux' ldconfig.
     3. Instead of ${LINUXBASE}/etc/ld.so.conf.d/zoom.conf, create the
        ${PREFIX}/bin/zoom script with LD_LIBRARY_PATH setting. (This
        will keep the libraries bundled with Zoom unavailable to other
        Linux programs.)
 2. An alternative method:
     1. Do declare the USE_LINUX_RPM (and set the SRC_DISTFILES to empty).
     2. Install the ${LINUXBASE}/etc/ld.so.conf.d/zoom.conf and declare
        the USE_LDCONFIG. (This will make the Zoom-libraries available
        to other Linux apps.)
     3. Explicitly set DESKTOPDIR based on LOCALBASE.

Opinions? Thank you! Yours,

    -mi




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?c3eaed2d-5654-5656-ef87-89c1e8cbdcc8>