Package Details: forticlient 7.4.2.1698-1

Git Clone URL: https://aur.archlinux.org/forticlient.git (read-only, click to copy)
Package Base: forticlient
Description: Fortinet VPN client ZTNA edition
Upstream URL: https://www.forticlient.com
Keywords: forticlient
Licenses: custom
Provides: forticlient
Submitter: Harms
Maintainer: Meowser
Last Packager: Meowser
Votes: 18
Popularity: 0.008158
First Submitted: 2018-10-29 20:50 (UTC)
Last Updated: 2024-12-18 15:51 (UTC)

Latest Comments

« First ‹ Previous 1 2 3 4 5 6 7 Next › Last »

philip.d commented on 2022-09-08 04:41 (UTC) (edited on 2022-09-08 04:50 (UTC) by philip.d)

according to marius' comments, I installed v7.0.6 successfully. here is the procedure:
1. download this deb package first: forticlient_7.0.6.0214_amd64.deb
2. convert this deb package into an arch package, I got a package file named "forticlient-7.0.6.0214-1-x86_64.pkg.tar.zst"
3. decompress it into a tar file like "forticlient-7.0.6.0214-1-x86_64.pkg.tar" by zstd cmd
4. extract the .INSTALL file from the tar file and change it according to marius' fix.
5. delete the .INSTALL file from the tar file and update the tar file with the changed one by "tar --delete -f forticlient-7.0.6.0214-1-x86_64.pkg.tar .INSTALL;tar -uf forticlient-7.0.6.0214-1-x86_64.pkg.tar .INSTALL;"
6. finally install it by cmd "sudo pacman -U forticlient-7.0.6.0214-1-x86_64.pkg.tar"
good luck!

marberom commented on 2022-08-29 10:58 (UTC)

Don't know if this comment is unwanted or bad and if so let me know and I will delete it, but I have switched to using openfortivpn-git which does everything I wanted forticlient to do and it works like a charm. Hope this helps someone :)

test commented on 2022-08-29 10:54 (UTC)

host repo.fortinet.com is not available

zeeshanali1993 commented on 2022-08-22 23:18 (UTC) (edited on 2022-08-22 23:25 (UTC) by zeeshanali1993)

getting white screen with and without sudo same result how to fix thnx.

artogahr commented on 2022-08-22 20:37 (UTC)

Having the blank screen thing here as well. Running with sudo and --no-sandbox does not help.

marberom commented on 2022-08-18 08:14 (UTC) (edited on 2022-08-18 10:01 (UTC) by marberom)

~~Having the same whitescreen error.~~ Figured out that running it with sudo privileges will get rid of the whitescreen.

camechis commented on 2022-08-12 15:38 (UTC)

Just installed and I am getting a white screen in the UI. Anyone figure this out yet?

Northcode commented on 2022-08-11 21:08 (UTC)

@marius.zenitech why does your patch introduce dependencies on ledger-live-bin and tuxedo-control-center? They don't seem to have anything to do with the program.

rabbyt commented on 2022-07-31 02:31 (UTC)

@marius.zenitech i have same issue, only show blank window. You seems fixed it but how??

marius.zenitech commented on 2022-07-22 06:34 (UTC)

FIXED:

diff --git a/.INSTALL b/.INSTALL
new file mode 100644
index 0000000..4329800
--- /dev/null
+++ b/.INSTALL
@@ -0,0 +1,266 @@
+pre_install() {
+
+   BACKUP_DIR=/etc/forticlient/.old
+   FCT_CONFIG=/etc/forticlient/config.xml
+   EC_CONFIG=/opt/forticlient/XMLs/ecdata.xml
+
+   # Backup old XML configurations if they exist so they can
+   # be imported on start up if upgrading from an older FCT version
+   if [ -f $FCT_CONFIG ] || [ -f $EC_CONFIG ]; then
+       mkdir $BACKUP_DIR && chmod 0600 $BACKUP_DIR
+   else
+       exit 0
+   fi
+
+   if [ -d $BACKUP_DIR ] && [ $(stat -c "%a" $BACKUP_DIR) -eq 600 ] && [ -f $FCT_CONFIG ]; then
+       cp $FCT_CONFIG $BACKUP_DIR
+   fi
+
+   if [ -d $BACKUP_DIR ] && [ $(stat -c "%a" $BACKUP_DIR) -eq 600 ] && [ -f $EC_CONFIG ]; then
+       cp $EC_CONFIG $BACKUP_DIR
+   fi
+
+}
+
+post_install() {
+   gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+
+   arg=$@
+   if [ "$arg" = "abort-remove" ]; then
+       exit 0
+   fi
+
+   # Remove older version directories and files when upgrading
+   if [ -d /usr/bin/forticlient ]; then
+       pkill -f /usr/bin/forticlient
+       rm -rf /usr/bin/forticlient
+   fi
+
+   # Remove old configuration files when upgrading from older versions
+   if [ -f /etc/forticlient/config.xml ]; then
+       rm -rf /etc/forticlient/config.xml
+   fi
+
+   if [ -f /etc/forticlient/config_backup.xml ]; then
+       rm -rf /etc/forticlient/config_backup.xml
+   fi
+
+   # Remove old pid lock
+   if [ -f /tmp/.forticlient/fortivpn.pid ]; then
+       rm -rf /tmp/.forticlient/fortivpn.pid
+   fi
+
+   if [ -f /opt/forticlient/Fortitray.desktop ]; then
+       ln -sf /opt/forticlient/Fortitray.desktop /etc/xdg/autostart/Fortitray.desktop
+   fi
+
+   # Restore permissions to all files
+   if [ -f /opt/forticlient/.repackaged ] && [ -f /opt/forticlient/.acl ]; then
+   (
+       cd /
+       setfacl --restore /opt/forticlient/.acl
+   )
+   fi
+
+   if [ -f /etc/forticlient/servers.conf ]; then
+       chmod 600 /etc/forticlient/servers.conf
+   fi
+
+   # Keep old database when upgrading from older versions
+   if [ ! -d /var/lib/forticlient ] || [ ! -O /var/lib/forticlient ]; then
+       rm -rf /var/lib/forticlient
+       mkdir -m 755 /var/lib/forticlient
+   fi
+
+   if [ -f /etc/forticlient/config.db ]; then
+       if [ -O /etc/forticlient/config.db ]; then
+           mv /etc/forticlient/config.db /var/lib/forticlient/config.db
+       else
+           # Old database cannot be trusted and should be replaced
+           # So ems connection info is lost and fct has to register to ems again
+           rm -f /etc/forticlient/config.db /opt/forticlient/.fct_ec_registered
+       fi
+   fi
+
+   if [ ! -f /var/lib/forticlient/config.db ]; then
+       cp /opt/forticlient/.config.db.init /var/lib/forticlient/config.db
+   fi
+
+   chmod 600 /var/lib/forticlient/config.db
+
+   # Create CLI symlink to launch from terminal
+   if [ -f /opt/forticlient/forticlient-cli ]; then
+       ln -sf /opt/forticlient/forticlient-cli /usr/bin/forticlient
+   fi
+
+   # Launch fortitray
+   if [ -f /opt/forticlient/fortitraylauncher ]; then
+       if [ ! -z "$(logname 2>/dev/null)" ]; then
+           user="$(logname 2>/dev/null)"
+       elif [ ! -z "$SUDO_USER" ]; then
+           user="$SUDO_USER"
+       else
+           user=$(users 2>/dev/null | cut -d ' ' -f1)
+       fi
+
+       GUI_ENV=
+
+       # Attempt to get the GUI environment variables so fortitray will actually display correctly
+       for p in $(pgrep -u "$user" dbus-daemon); do
+           if [ -z "$(xargs -0 -L1 -a /proc/$p/cmdline | grep '^--config-file=')" ]; then
+               continue
+           fi
+
+           OIFS="$IFS"
+           IFS=$'\n'
+           for e in $(xargs -0 -L1 -a /proc/$p/environ); do
+               IFS== read -r left right <<< "$e"
+               GUI_ENV="$GUI_ENV $left=\"$right\""
+           done
+           IFS="$OIFS"
+
+           break
+       done
+
+       FORTITRAY_CMD="env -i $GUI_ENV setsid /opt/forticlient/fortitraylauncher &>/dev/null &"
+
+       # Start fortitraylauncher while forwarding environment variables needed by Fortitray
+       su $user -c "$FORTITRAY_CMD"
+   fi
+
+   # Update icons cache so icon will show correctly
+   if [ -f /usr/share/icons/hicolor/48x48/apps/forticlient.png ]; then
+       gtk-update-icon-cache -f /usr/share/icons/hicolor || true
+   fi
+
+   # Setup forticlient protocol handler
+   if [ -f /usr/share/applications/forticlient-register.desktop ]; then
+       update-desktop-database
+   fi
+
+   systemctl reenable forticlient.service >/dev/null || true
+   if [ -d /run/systemd/system ]; then
+       systemctl --system daemon-reload >/dev/null || true
+       systemctl start forticlient.service >/dev/null || true
+   fi
+
+   update-desktop-database -q
+}
+
+pre_upgrade() {
+   pre_install
+}
+
+post_upgrade() {
+   post_install
+}
+
+pre_remove() {
+
+   if [ "$2" = "in-favour" ] || [ "$1" = "upgrade" ]; then
+       # Treat conflict remove as an upgrade.
+       action="upgrade"
+   fi
+
+   # Check if forticlient is registered to EMS if it's an uninstall
+   if [ -f /opt/forticlient/.fct_ec_registered ] && [ "$action" != "upgrade" ]; then
+       echo "============================================================="
+       echo "Error: Unable to uninstall forticlient while connected to EMS"
+       echo "============================================================="
+       exit 1
+   fi
+
+   # Stop fortitray
+   if [ -f /tmp/.forticlient/fortitraylauncher ]; then
+       echo "terminate" > /tmp/.forticlient/fortitraylauncher || true
+   fi
+
+   # Remove ZTNA browser certificates
+   if [ -f /usr/bin/certutil ]; then
+       find /home /root -regextype posix-extended \
+           -regex '(/home/[^/]*|/root)/(.pki/nssdb|.mozilla/firefox/[^/]*default(-release)?)' \
+           -maxdepth 5 -print0 2>/dev/null |
+       while IFS= read -r -d $'\0' p; do
+           RUN_USER=$(stat -c '%U' "$p")
+
+           if [ $? -ne 0 ]; then
+               continue
+           fi
+
+           su - "$RUN_USER" -c '/usr/bin/certutil -D -n "FortiClient ZTNA" -d sql:'"$p"' 2>/dev/null || true'
+           su - "$RUN_USER" -c '/usr/bin/modutil -delete "FortiClient ZTNA" -dbdir sql:'"$p"' -force 2>/dev/null || true'
+       done
+   fi
+
+   # Remove token from tpm2 database
+   if [ -f /opt/forticlient/tpm2/tpm2_ptool/exe.linux-x86_64-3.7/tpm2_ptool ] && \
+      [ -d /opt/forticlient/tpm2/bin/ ]; then
+       PATH="/opt/forticlient/tpm2/bin:$PATH" \
+           /opt/forticlient/tpm2/tpm2_ptool/exe.linux-x86_64-3.7/tpm2_ptool rmtoken \
+           --label fct-ztna-token --path /opt/forticlient/
+   fi
+
+   if [ -d /run/systemd/system ]; then
+       systemctl stop forticlient.service >/dev/null
+   fi
+
+
+   pkill -f /opt/forticlient
+}
+
+post_remove() {
+   gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+
+   if [ -d /run/systemd/system ]; then
+       systemctl --system daemon-reload >/dev/null || true
+   fi
+   if [ "$1" = "remove" ]; then
+       systemctl mask forticlient.service >/dev/null
+   fi
+
+   if [ "$1" = "purge" ]; then
+       systemctl unmask forticlient.service >/dev/null
+   fi
+
+
+   # Remove shared memory
+   rm -rf /var/run/fctc.s || true
+
+   # Only do complete clean-up on purge or remove
+   if [ "$1" != "remove" ] && [ "$1" != "purge" ]; then
+       exit 0
+   fi
+
+   # Remove Fortitray.desktop symlink
+   rm -rf /etc/xdg/autostart/Fortitray.desktop || true
+
+   # Remove fortitraylauncher fifo
+   rm -rf /tmp/.forticlient/fortitraylauncher || true
+
+   # Remove GUI symlink
+   rm -rf /usr/bin/forticlient || true
+
+   # Remove FortiClient service
+   rm -rf /usr/lib/systemd/system/forticlient.service || true
+
+   # Remove FortiClient binaries
+   rm -rf /opt/forticlient || true
+
+   # Remove config and log files only on purge
+   if [ "$1" = "purge" ]; then
+       # Remove config files and perserve uuid
+       rm -rf /var/lib/forticlient || true
+       find /etc/forticlient -type f -not -name 'custom_machine_id.conf' -delete
+
+       # Remove log files
+       rm -rf /var/log/forticlient || true
+   fi
+
+   # Remove fortitray policy
+   rm -rf /usr/share/polkit-1/actions/org.fortinet.fortitray.policy || true
+
+   # Remove forticlient policy
+   rm -rf /usr/share/polkit-1/actions/org.fortinet.forticlient.policy || true
+
+   update-desktop-database -q
+}
diff --git a/.SRCINFO b/.SRCINFO
index 3c0b989..7b129e5 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,23 +1,64 @@
 pkgbase = forticlient
-   pkgdesc = An endpoint protection application
+   pkgdesc = FortiClient, now available on Linux, is an endpoint protection application that runs on Microsoft Windows, Mac OS X, iOS and Android It is backed by antivirus engine and signatures from the well-known FortiGuard labs - www.fortiguard.com.
    pkgver = 7.0.6.0214
-   pkgrel = 1
+   pkgrel = 2
    url = https://www.forticlient.com
+   install = .INSTALL
    arch = x86_64
+   groups = 
    license = custom
-   depends = libxss
-   depends = libsecret
    depends = alsa-lib
+   depends = atk>=2.2.0
+   depends = at-spi2-atk>=2.5.3
+   depends = at-spi2-core>=2.9.90
+   depends = bzip2
+   depends = cairo>=1.6.0
+   depends = dbus
+   depends = desktop-file-utils
+   depends = expat>=2.0.1
+   depends = gcc>=3.0
+   depends = gcc-libs
+   depends = gdk-pixbuf2
+   depends = glib2>=2.35.8
+   depends = glibc>=2.15
+   depends = gtk2
+   depends = gtk3>=3.9.10
+   depends = gzip>=1.6
+   depends = hicolor-icon-theme
+   depends = ledger-live-bin>0
+   depends = libappindicator-gtk2>0
+   depends = libcups>=1.4.0
+   depends = libdrm
    depends = libnotify
-   depends = gtk3
-   depends = nss
+   depends = libsecret>=0.18.4
+   depends = libx11>=1.4.99.1
+   depends = libxcb>=1.6
+   depends = libxcomposite>=0.3
    depends = libxcrypt-compat
-   depends = libappindicator-gtk2
-   provides = forticlient
+   depends = libxcursor>1.1.2
+   depends = libxdamage>=1.1
+   depends = libxext
+   depends = libxfixes>=5.0
+   depends = libxi>=1.2.99.4
+   depends = libxkbcommon
+   depends = libxrandr>=1.2.99.3
+   depends = libxrender
+   depends = libxss
+   depends = libxtst
+   depends = mesa
+   depends = nspr>=4.9
+   depends = nss>=3.22
+   depends = pango
+   depends = sqlite
+   depends = systemd-libs>0
+   depends = tuxedo-control-center
+   depends = util-linux-libs
+   depends = zlib
    options = !strip
    options = !emptydirs
-   backup = etc/forticlient/config.db
-   source = https://repo.fortinet.com/repo/7.0/ubuntu/pool/multiverse/forticlient/forticlient_7.0.6.0214_amd64.deb
-   sha512sums = a885658f50e06814e3f3a933c2cc6ff67a74b3e641292586b529f51ecf02e866a0798f7cdeb687793403420c87d817a2fd832e3bc33e75f9cffde1a1ce8d1d93
+   backup = etc/bash_completion.d/fct_cli_autocomplete
+   backup = etc/bash_completion.d/forticlient-completion
+   source_x86_64 = https://repo.fortinet.com/repo/7.0/ubuntu/pool/multiverse/forticlient/forticlient_7.0.6.0214_amd64.deb
+   sha512sums_x86_64 = a885658f50e06814e3f3a933c2cc6ff67a74b3e641292586b529f51ecf02e866a0798f7cdeb687793403420c87d817a2fd832e3bc33e75f9cffde1a1ce8d1d93

 pkgname = forticlient
diff --git a/.gitignore b/.gitignore
index 69227d8..e883028 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,5 @@
 *.zst
 *.deb
+*.part
 pkg/
-src/
\ No newline at end of file
+src/
diff --git a/PKGBUILD b/PKGBUILD
index 98cab32..60c5934 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,30 +1,31 @@
 # Maintainer: Brendan <ball dot brendan 50 at gmail dot com>
 # Contributor: Harms <thotro at lyse dot net>
+# Contributor: Marius <marius dot guscius at zenitech dot co dot uk>
+
 pkgname=forticlient
 pkgver=7.0.6.0214
-pkgrel=1
-pkgdesc="An endpoint protection application"
+pkgrel=2
+pkgdesc="FortiClient, now available on Linux, is an endpoint protection application that runs on Microsoft Windows, Mac OS X, iOS and Android It is backed by antivirus engine and signatures from the well-known FortiGuard labs - www.fortiguard.com."
 arch=('x86_64')
 url="https://www.forticlient.com"
 license=('custom')
-groups=()
-provides=(forticlient)
-depends=('libxss' 'libsecret' 'alsa-lib' 'libnotify' 'gtk3' 'nss' 'libxcrypt-compat' 'libappindicator-gtk2')
-backup=('etc/forticlient/config.db')
+groups=('')
+depends=('alsa-lib' 'atk>=2.2.0' 'at-spi2-atk>=2.5.3' 'at-spi2-core>=2.9.90' 'bzip2' 'cairo>=1.6.0' 'dbus' 'desktop-file-utils' 'expat>=2.0.1' 'gcc>=3.0' 'gcc-libs' 'gdk-pixbuf2' 'glib2>=2.35.8' 'glibc>=2.15' 'gtk2' 'gtk3>=3.9.10' 'gzip>=1.6' 'hicolor-icon-theme' 'ledger-live-bin>0' 'libappindicator-gtk2>0' 'libcups>=1.4.0' 'libdrm' 'libnotify' 'libsecret>=0.18.4' 'libx11>=1.4.99.1' 'libxcb>=1.6' 'libxcomposite>=0.3' 'libxcrypt-compat' 'libxcursor>1.1.2' 'libxdamage>=1.1' 'libxext' 'libxfixes>=5.0' 'libxi>=1.2.99.4' 'libxkbcommon' 'libxrandr>=1.2.99.3' 'libxrender' 'libxss' 'libxtst' 'mesa' 'nspr>=4.9' 'nss>=3.22' 'pango' 'sqlite' 'systemd-libs>0' 'tuxedo-control-center' 'util-linux-libs' 'zlib')
+backup=('etc/bash_completion.d/fct_cli_autocomplete' 'etc/bash_completion.d/forticlient-completion')
 options=('!strip' '!emptydirs')
-source=("https://repo.fortinet.com/repo/7.0/ubuntu/pool/multiverse/${pkgname}/${pkgname}_${pkgver}_amd64.deb")
-sha512sums=('a885658f50e06814e3f3a933c2cc6ff67a74b3e641292586b529f51ecf02e866a0798f7cdeb687793403420c87d817a2fd832e3bc33e75f9cffde1a1ce8d1d93')
-
-package(){
+install=.INSTALL
+source_x86_64=("https://repo.fortinet.com/repo/7.0/ubuntu/pool/multiverse/${pkgname}/${pkgname}_${pkgver}_amd64.deb")
+sha512sums_x86_64=('a885658f50e06814e3f3a933c2cc6ff67a74b3e641292586b529f51ecf02e866a0798f7cdeb687793403420c87d817a2fd832e3bc33e75f9cffde1a1ce8d1d93')

+package() {
    # Extract package data
-   tar xf data.tar.xz -C "${pkgdir}"
+   tar -xJ -f data.tar.xz -C "${pkgdir}"

    # Fix directory structure differences
    cd "${pkgdir}"
-
+   install -D -m644 "opt/forticlient/gui/FortiClient-linux-x64/LICENSES.chromium.html" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+   install -D -m644 "usr/share/doc/forticlient/copyright" "${pkgdir}/usr/share/licenses/${pkgname}/COPYRIGHT"
    mkdir -p usr/lib 2> /dev/null; mv lib/* usr/lib; rm -rf lib

    cd ..
-
 }