In this step, you will create an initialization script that enables the application to work inside a Custom Partition. In a regular installation, the files of the Zoom application would be located in /usr, /opt and so on, whereas in the Custom Partition, they are located under /custom/zoom/usr,  /custom/zoom/opt and so on. The initialization script will fix this by creating symbolic links so that for example /custom/zoom/usr/lib/library.so will appear to be in /usr/lib/library.so, where Zoom expects it.

  1. On your workstation, go to the directory where the zoom directory is located.

  2. Open your text editor of choice and enter the following script:


    #!/bin/sh
    
    ACTION="custompart-zoom_${1}"
    
    # mount point path
    MP=$(get custom_partition.mountpoint)
    
    # custom partition path
    CP="${MP}/zoom"
    
    # wfs for persistent login and history
    WFS="/wfs/user/.zoom/data"
    
    # .zoom directory
    ZOOM="/userhome/.zoom/"
    
    # output to systemlog with ID amd tag
    LOGGER="logger -it ${ACTION}"
    
    echo "Starting" | $LOGGER
    
    case "$1" in
    init)
            # Linking files and folders on proper path
    	find ${CP} | while read LINE
            do
                    DEST=$(echo -n "${LINE}" | sed -e "s|${CP}||g")
                    if [ ! -z "${DEST}" -a ! -e "${DEST}" ]; then
                            # Remove the last slash, if it is a dir
                            [ -d $LINE ] && DEST=$(echo "${DEST}" | sed -e "s/\/$//g") | $LOGGER
                            if [ ! -z "${DEST}" ]; then
                                    ln -sv "${LINE}" "${DEST}" | $LOGGER
                            fi
                    fi
            done
    
    	# Linking /userhome/.zoom/data to /wfs/user/.zoom/data for some basic persistency
    	mkdir -p ${WFS}
    	chown -R user:users ${WFS}
    	mkdir -p ${ZOOM}/data
    	chown -R user:users ${ZOOM}/data
            mkdir -p ${ZOOM}/data/VirtualBkgnd_Custom
            chown -R user:users ${ZOOM}/data/VirtualBkgnd_Custom
            mkdir -p ${ZOOM}/data/VirtualBkgnd_Default
            chown -R user:users ${ZOOM}/data/VirtualBkgnd_Default
    	
    	ln -sv ${WFS}/zoomus.db ${ZOOM}/data/zoomus.db | $LOGGER
    	ln -sv ${WFS}/zoommeeting.db ${ZOOM}/data/zoommeeting.db | $LOGGER
    	ln -sv ${WFS}/VirtualBkgnd_Custom ${ZOOM}/data/ | $LOGGER
    	ln -sv ${WFS}/VirtualBkgnd_Default ${ZOOM}/data/ | $LOGGER
            
            chown user:users /wfs/user/.zoom
            ln -sv /wfs/user/.zoom/zoomus.conf /userhome/.config/zoomus.conf | $LOGGER	
    	
            # remove all com.zoom.ipc* files from /wfs/user/.zoom/data - might cause issues when updating zoom
            rm ${WFS}/com.zoom.ipc*
    	
    	# add /opt/zoom to ld_library
    	echo "${CP}/opt/zoom" > /etc/ld.so.conf.d/zoom.conf
    	ldconfig
    
    	${MP}/zoom_postinst | $LOGGER
    
    ;;
    stop)
    	# unlink linked files
    	find ${CP} | while read LINE
            do
                    DEST=$(echo -n "${LINE}" | sed -e "s|${CP}||g")
    		unlink $DEST | $LOGGER
    	done
    
    	# remove zoom.conf because it is not needed anymore
    	rm /etc/ld.so.conf.d/zoom.conf
    
    
    ;;
    esac
    
    echo "Finished" | $LOGGER
    
    exit 0
    
    
    
    BASH

    The code line echo "${CP}/opt/zoom" > /etc/ld.so.conf.d/zoom.conf tells the Zoom application via the configuration file zoom.conf to search for libraries in /custom/opt/zoom. This is expected by the Zoom application.

  3. Save the file as custompart-zoom

Next Step

>> Compressing the Custom Partition Contents