Package Details: forticlient 7.4.0.1636-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.046092
First Submitted: 2018-10-29 20:50 (UTC)
Last Updated: 2024-06-12 20:06 (UTC)

Latest Comments

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

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 ..
-
 }

marius.zenitech commented on 2022-07-21 11:16 (UTC)

7.0.6 at least on my system loads up with blank window. Anyone else having same issues?

➜  ~ forticlient                                               
{
  catchErrors: [Function: catchErrors],
  create: [Function: t],
  functions: {
    error: [Function: bound log],
    warn: [Function: bound log],
    info: [Function: bound log],
    verbose: [Function: bound log],
    debug: [Function: bound log],
    silly: [Function: bound log],
    log: [Function: bound log]
  },
  hooks: [],
  isDev: false,
  levels: [ 'error', 'warn', 'info', 'verbose', 'debug', 'silly' ],
  logId: 'default',
  variables: { processType: 'browser' },
  scope: [Function: e] {
    labelPadding: true,
    defaultLabel: '',
    maxLabelLength: 0,
    getOptions: [Function]
  },
  transports: {
    console: [Function: e] {
      level: 'silly',
      useStyles: undefined,
      format: '%c{h}:{i}:{s}.{ms}{scope}%c › {text}'
    },
    file: [Function: f] {
      archiveLog: [Function],
      depth: 5,
      fileName: 'main.log',
      format: '[{y}-{m}-{d} {h}:{i}:{s}.{ms}] [{level}]{scope} {text}',
      getFile: [Function: h],
      level: 'silly',
      maxSize: 1048576,
      readAllLogs: [Function],
      resolvePath: [Function],
      sync: true,
      writeOptions: [Object],
      inspectOptions: {},
      clear: [Function: deprecated],
      findLogPath: [Function: deprecated],
      init: [Function: deprecated]
    },
    remote: [Function: e] {
      client: [Object],
      depth: 6,
      level: false,
      requestOptions: {},
      url: null,
      onError: null,
      transformBody: [Function]
    },
    ipc: [Function: e] {
      eventId: '__ELECTRON_LOG_IPC_default__',
      level: false
    }
  },
  error: [Function: bound log],
  warn: [Function: bound log],
  info: [Function: bound log],
  verbose: [Function: bound log],
  debug: [Function: bound log],
  silly: [Function: bound log],
  log: [Function: bound log],
  logMessageWithTransports: [Function],
  default: [Circular]
}
Platform detected: fedora 1
14:16:08.568 › Platform detected: fedora
[ '/opt/forticlient/gui/FortiClient-linux-x64/FortiClient' ] 1
14:16:08.571 › [ '/opt/forticlient/gui/FortiClient-linux-x64/FortiClient' ]
Saml - init 1
14:16:08.598 › Saml - init
compliance configDir=/home/mariusg/.config/FortiClient/config 1
14:16:09.157 › compliance configDir=/home/mariusg/.config/FortiClient/config
did-finish-load 1
14:16:09.160 › did-finish-load
ready-to-show 1
14:16:09.161 › ready-to-show
window-all-closed 1
14:16:12.777 › window-all-closed

gaya4 commented on 2022-05-30 07:35 (UTC)

@elessard Coming from the Ubuntu world and having trouble with the dependencies under Debian where the FortiClient wants to have libindicator and libappindicator. See whether you can add these to your system, that might give you the systray.

elessard commented on 2022-03-25 09:20 (UTC)

I have installed forticlient under kde plasma. Everything works fine but the missing feature that really bother me is the notification tray icon. the only way to check if you're connected (or simply a shortcut to connect you to the VPN) is by reopening the client, via systemctl or by checking your routing table. Anyone know a workaround to have the notification tray icon or a simple connection status icon?

ldgnu commented on 2021-07-05 14:22 (UTC) (edited on 2021-07-05 14:23 (UTC) by ldgnu)

I managed to run the latest version taken from the forticlient page. Following the steps of the debtap then installing with sudo pacman -U It gives some errors when installing and when you open it sometimes the whole screen remains white but it works even with ems :)

I leave the pkg generated with debtap https://drive.google.com/file/d/1phL3aB1WXmtTnAUpZl8FvVDKZRT_8abq/view?usp=sharing

which seems weird that it installs discord and chromium as dependencies haha if someone can happily modify it

Greetings and thanks to all!