FusionAuth / fusionauth-issues

FusionAuth issue submission project
https://fusionauth.io
90 stars 12 forks source link

script-installed FusionAuth rpm fails to completely UNinstall with `rpm -e` #843

Closed pgnd closed 3 years ago

pgnd commented 3 years ago

on

grep PRETTY /etc/os-release
  PRETTY_NAME="Fedora 32 (Server Edition)"

i've script-installed fusionauth 1.18.8

sh -c "curl -kfsSL https://raw.githubusercontent.com/FusionAuth/fusionauth-install/master/install.sh | sh"
    Downloading RPM packages
    ######################################################################## 100.0%
    Installing rpm packages
    sudo rpm -U /tmp/fusionauth-app.rpm

    Install is complete. Time for tacos.

     1. To start FusionAuth run the following commands
        sudo service fusionauth-search start
        sudo service fusionauth-app start

     2. To begin, access FusionAuth by opening a browser to http://localhost:9011

     3. If you're looking for documentation, open your browser and navigate to https://fusionauth.io/docs

    Thank you have a nice day.

rpm -qa | grep fusionauth
    fusionauth-app-1.18.8-1.noarch

the rpm's installed

rpm -qa | grep fusionauth-app
    fusionauth-app-1.18.8-1.noarch

rpm -ql fusionauth-app

    ==> https://pastebin.com/raw/5dhzbDzS

but rpm UNinstall

rpm -e fusionauth-app
    Stopping FusionAuth App:    (not running)

FAILs to remove the installed files; these remain

https://pastebin.com/raw/k47tr9m8
voidmain commented 3 years ago

All of those files are created outside of the RPM, so they will remain after you remove the RPM. Some of the files and directories are created as part of the "Quick install script" installation.

The JDK will also remain, even if you use the RPM file directly rather than the "Quick install script". The JDK is downloaded during the initial start up process because it can be shared between fusionauth-app and fusionauth-search if you are running both on the same server.

In general, RPM isn't quite as good as DEB for purging all files for a package, including configuration files and other files placed by the installation process.

Therefore, this is essentially working as designed.

Feel free to delete all of those directories after you remove the RPM though. They aren't managed by any packages, so removing them won't mess anything up.

pgnd commented 3 years ago

@voldmain

In general, RPM isn't quite as good as DEB for purging all files for a package, including configuration files and other files placed by the installation process.

that's simply a ridiculous statement.

RPM is 'as good' as the person writing the spec. it'll purge what you correctly tell it to.

an install that can't be cleanly UNinstalled doesn't get installed in the first place.

voidmain commented 3 years ago

@pgnd There are a lot of articles, SO posts, and other places that describe the short-comings of RPM. It lacks the distinction between a remove, erase and purge that other package management systems have. That was my main point. However, you are welcome to have a different opinion.

I understand that RPM specs need to be design properly and the FusionAuth RPM by itself is designed to remove the components it knows 100% are no longer in use or that have been modified manually and should not be removed.

However, you aren't using the RPM by itself, therefore, you can't expect the RPM to clean everything up. You are using the "Quick install script", which does extra work. I think that it isn't a reasonable expectation that a script which installs a bunch of things, including multiple RPMs, should safely uninstall everything when someone manually removes one of the RPMs it installed.

I'd be happy to discuss whether or not we should add an uninstall option to the "Quick install scripts", but that's not what this issue appears to be about. We can rework this issue and re-open it under that request if you would like.

pgnd commented 3 years ago

However, you aren't using the RPM by itself, therefore, you can't expect the RPM to clean everything up.

rpm -qa | grep fusionauth
updatedb
locate -i fusionauth
rpm -Uvh https://files.fusionauth.io/products/fusionauth/1.18.8/fusionauth-app-1.18.8-1.noarch.rpm
    Retrieving https://files.fusionauth.io/products/fusionauth/1.18.8/fusionauth-app-1.18.8-1.noarch.rpm
    Verifying...                          ################################# [100%]
    Preparing...                          ################################# [100%]
    Updating / installing...
       1:fusionauth-app-1.18.8-1          ################################# [100%]
rpm -qa | grep fusionauth
    fusionauth-app-1.18.8-1.noarch
rpm -e fusionauth-app-1.18.8-1.noarch
    Stopping FusionAuth App:    (not running)
locate -i fusionauth
    /usr/local/fusionauth
    /usr/local/fusionauth/bin
    /usr/local/fusionauth/config
    /usr/local/fusionauth/fusionauth-app
    /usr/local/fusionauth/java
    /usr/local/fusionauth/logs
    /usr/local/fusionauth/bin/shutdown.sh
    /usr/local/fusionauth/bin/startup.bat
    /usr/local/fusionauth/bin/startup.sh
    /usr/local/fusionauth/config/fusionauth.properties
    /usr/local/fusionauth/config/keystore
    /usr/local/fusionauth/fusionauth-app/apache-tomcat
    /usr/local/fusionauth/fusionauth-app/apache-tomcat/logs
    /usr/local/fusionauth/java/current
    /usr/local/fusionauth/java/jdk-14.0.1+7
    /usr/local/fusionauth/java/jdk-14.0.1+7/bin
    /usr/local/fusionauth/java/jdk-14.0.1+7/conf
    /usr/local/fusionauth/java/jdk-14.0.1+7/include
    /usr/local/fusionauth/java/jdk-14.0.1+7/jmods
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal
    /usr/local/fusionauth/java/jdk-14.0.1+7/lib
    /usr/local/fusionauth/java/jdk-14.0.1+7/man
    /usr/local/fusionauth/java/jdk-14.0.1+7/release
    /usr/local/fusionauth/java/jdk-14.0.1+7/bin/jaotc
    /usr/local/fusionauth/java/jdk-14.0.1+7/bin/jar
    /usr/local/fusionauth/java/jdk-14.0.1+7/bin/jarsigner
    /usr/local/fusionauth/java/jdk-14.0.1+7/bin/java
    /usr/local/fusionauth/java/jdk-14.0.1+7/bin/javac
    /usr/local/fusionauth/java/jdk-14.0.1+7/bin/javadoc
    /usr/local/fusionauth/java/jdk-14.0.1+7/bin/javap
    /usr/local/fusionauth/java/jdk-14.0.1+7/bin/jcmd
    /usr/local/fusionauth/java/jdk-14.0.1+7/bin/jconsole
    /usr/local/fusionauth/java/jdk-14.0.1+7/bin/jdb
    /usr/local/fusionauth/java/jdk-14.0.1+7/bin/jdeprscan
    /usr/local/fusionauth/java/jdk-14.0.1+7/bin/jdeps
    /usr/local/fusionauth/java/jdk-14.0.1+7/bin/jfr
    /usr/local/fusionauth/java/jdk-14.0.1+7/bin/jhsdb
    /usr/local/fusionauth/java/jdk-14.0.1+7/bin/jimage
    /usr/local/fusionauth/java/jdk-14.0.1+7/bin/jinfo
    /usr/local/fusionauth/java/jdk-14.0.1+7/bin/jjs
    /usr/local/fusionauth/java/jdk-14.0.1+7/bin/jlink
    /usr/local/fusionauth/java/jdk-14.0.1+7/bin/jmap
    /usr/local/fusionauth/java/jdk-14.0.1+7/bin/jmod
    /usr/local/fusionauth/java/jdk-14.0.1+7/bin/jpackage
    /usr/local/fusionauth/java/jdk-14.0.1+7/bin/jps
    /usr/local/fusionauth/java/jdk-14.0.1+7/bin/jrunscript
    /usr/local/fusionauth/java/jdk-14.0.1+7/bin/jshell
    /usr/local/fusionauth/java/jdk-14.0.1+7/bin/jstack
    /usr/local/fusionauth/java/jdk-14.0.1+7/bin/jstat
    /usr/local/fusionauth/java/jdk-14.0.1+7/bin/jstatd
    /usr/local/fusionauth/java/jdk-14.0.1+7/bin/keytool
    /usr/local/fusionauth/java/jdk-14.0.1+7/bin/rmic
    /usr/local/fusionauth/java/jdk-14.0.1+7/bin/rmid
    /usr/local/fusionauth/java/jdk-14.0.1+7/bin/rmiregistry
    /usr/local/fusionauth/java/jdk-14.0.1+7/bin/serialver
    /usr/local/fusionauth/java/jdk-14.0.1+7/conf/logging.properties
    /usr/local/fusionauth/java/jdk-14.0.1+7/conf/management
    /usr/local/fusionauth/java/jdk-14.0.1+7/conf/net.properties
    /usr/local/fusionauth/java/jdk-14.0.1+7/conf/sdp
    /usr/local/fusionauth/java/jdk-14.0.1+7/conf/security
    /usr/local/fusionauth/java/jdk-14.0.1+7/conf/sound.properties
    /usr/local/fusionauth/java/jdk-14.0.1+7/conf/management/jmxremote.access
    /usr/local/fusionauth/java/jdk-14.0.1+7/conf/management/jmxremote.password.template
    /usr/local/fusionauth/java/jdk-14.0.1+7/conf/management/management.properties
    /usr/local/fusionauth/java/jdk-14.0.1+7/conf/sdp/sdp.conf.template
    /usr/local/fusionauth/java/jdk-14.0.1+7/conf/security/java.policy
    /usr/local/fusionauth/java/jdk-14.0.1+7/conf/security/java.security
    /usr/local/fusionauth/java/jdk-14.0.1+7/conf/security/policy
    /usr/local/fusionauth/java/jdk-14.0.1+7/conf/security/policy/README.txt
    /usr/local/fusionauth/java/jdk-14.0.1+7/conf/security/policy/limited
    /usr/local/fusionauth/java/jdk-14.0.1+7/conf/security/policy/unlimited
    /usr/local/fusionauth/java/jdk-14.0.1+7/conf/security/policy/limited/default_US_export.policy
    /usr/local/fusionauth/java/jdk-14.0.1+7/conf/security/policy/limited/default_local.policy
    /usr/local/fusionauth/java/jdk-14.0.1+7/conf/security/policy/limited/exempt_local.policy
    /usr/local/fusionauth/java/jdk-14.0.1+7/conf/security/policy/unlimited/default_US_export.policy
    /usr/local/fusionauth/java/jdk-14.0.1+7/conf/security/policy/unlimited/default_local.policy
    /usr/local/fusionauth/java/jdk-14.0.1+7/include/classfile_constants.h
    /usr/local/fusionauth/java/jdk-14.0.1+7/include/jawt.h
    /usr/local/fusionauth/java/jdk-14.0.1+7/include/jdwpTransport.h
    /usr/local/fusionauth/java/jdk-14.0.1+7/include/jni.h
    /usr/local/fusionauth/java/jdk-14.0.1+7/include/jvmti.h
    /usr/local/fusionauth/java/jdk-14.0.1+7/include/jvmticmlr.h
    /usr/local/fusionauth/java/jdk-14.0.1+7/include/linux
    /usr/local/fusionauth/java/jdk-14.0.1+7/include/linux/jawt_md.h
    /usr/local/fusionauth/java/jdk-14.0.1+7/include/linux/jni_md.h
    /usr/local/fusionauth/java/jdk-14.0.1+7/jmods/java.base.jmod
    /usr/local/fusionauth/java/jdk-14.0.1+7/jmods/java.compiler.jmod
    /usr/local/fusionauth/java/jdk-14.0.1+7/jmods/java.datatransfer.jmod
    /usr/local/fusionauth/java/jdk-14.0.1+7/jmods/java.desktop.jmod
    /usr/local/fusionauth/java/jdk-14.0.1+7/jmods/java.instrument.jmod
    /usr/local/fusionauth/java/jdk-14.0.1+7/jmods/java.logging.jmod
    /usr/local/fusionauth/java/jdk-14.0.1+7/jmods/java.management.jmod
    /usr/local/fusionauth/java/jdk-14.0.1+7/jmods/java.management.rmi.jmod
    /usr/local/fusionauth/java/jdk-14.0.1+7/jmods/java.naming.jmod
    /usr/local/fusionauth/java/jdk-14.0.1+7/jmods/java.net.http.jmod
    /usr/local/fusionauth/java/jdk-14.0.1+7/jmods/java.prefs.jmod
    /usr/local/fusionauth/java/jdk-14.0.1+7/jmods/java.rmi.jmod
    /usr/local/fusionauth/java/jdk-14.0.1+7/jmods/java.scripting.jmod
    /usr/local/fusionauth/java/jdk-14.0.1+7/jmods/java.se.jmod
    /usr/local/fusionauth/java/jdk-14.0.1+7/jmods/java.security.jgss.jmod
    /usr/local/fusionauth/java/jdk-14.0.1+7/jmods/java.security.sasl.jmod
    /usr/local/fusionauth/java/jdk-14.0.1+7/jmods/java.smartcardio.jmod
    /usr/local/fusionauth/java/jdk-14.0.1+7/jmods/java.sql.jmod
    /usr/local/fusionauth/java/jdk-14.0.1+7/jmods/java.sql.rowset.jmod
    /usr/local/fusionauth/java/jdk-14.0.1+7/jmods/java.transaction.xa.jmod
    /usr/local/fusionauth/java/jdk-14.0.1+7/jmods/java.xml.crypto.jmod
    /usr/local/fusionauth/java/jdk-14.0.1+7/jmods/java.xml.jmod
    /usr/local/fusionauth/java/jdk-14.0.1+7/jmods/jdk.accessibility.jmod
    /usr/local/fusionauth/java/jdk-14.0.1+7/jmods/jdk.aot.jmod
    /usr/local/fusionauth/java/jdk-14.0.1+7/jmods/jdk.attach.jmod
    /usr/local/fusionauth/java/jdk-14.0.1+7/jmods/jdk.charsets.jmod
    /usr/local/fusionauth/java/jdk-14.0.1+7/jmods/jdk.compiler.jmod
    /usr/local/fusionauth/java/jdk-14.0.1+7/jmods/jdk.crypto.cryptoki.jmod
    /usr/local/fusionauth/java/jdk-14.0.1+7/jmods/jdk.crypto.ec.jmod
    /usr/local/fusionauth/java/jdk-14.0.1+7/jmods/jdk.dynalink.jmod
    /usr/local/fusionauth/java/jdk-14.0.1+7/jmods/jdk.editpad.jmod
    /usr/local/fusionauth/java/jdk-14.0.1+7/jmods/jdk.hotspot.agent.jmod
    /usr/local/fusionauth/java/jdk-14.0.1+7/jmods/jdk.httpserver.jmod
    /usr/local/fusionauth/java/jdk-14.0.1+7/jmods/jdk.incubator.foreign.jmod
    /usr/local/fusionauth/java/jdk-14.0.1+7/jmods/jdk.incubator.jpackage.jmod
    /usr/local/fusionauth/java/jdk-14.0.1+7/jmods/jdk.internal.ed.jmod
    /usr/local/fusionauth/java/jdk-14.0.1+7/jmods/jdk.internal.jvmstat.jmod
    /usr/local/fusionauth/java/jdk-14.0.1+7/jmods/jdk.internal.le.jmod
    /usr/local/fusionauth/java/jdk-14.0.1+7/jmods/jdk.internal.opt.jmod
    /usr/local/fusionauth/java/jdk-14.0.1+7/jmods/jdk.internal.vm.ci.jmod
    /usr/local/fusionauth/java/jdk-14.0.1+7/jmods/jdk.internal.vm.compiler.jmod
    /usr/local/fusionauth/java/jdk-14.0.1+7/jmods/jdk.internal.vm.compiler.management.jmod
    /usr/local/fusionauth/java/jdk-14.0.1+7/jmods/jdk.jartool.jmod
    /usr/local/fusionauth/java/jdk-14.0.1+7/jmods/jdk.javadoc.jmod
    /usr/local/fusionauth/java/jdk-14.0.1+7/jmods/jdk.jcmd.jmod
    /usr/local/fusionauth/java/jdk-14.0.1+7/jmods/jdk.jconsole.jmod
    /usr/local/fusionauth/java/jdk-14.0.1+7/jmods/jdk.jdeps.jmod
    /usr/local/fusionauth/java/jdk-14.0.1+7/jmods/jdk.jdi.jmod
    /usr/local/fusionauth/java/jdk-14.0.1+7/jmods/jdk.jdwp.agent.jmod
    /usr/local/fusionauth/java/jdk-14.0.1+7/jmods/jdk.jfr.jmod
    /usr/local/fusionauth/java/jdk-14.0.1+7/jmods/jdk.jlink.jmod
    /usr/local/fusionauth/java/jdk-14.0.1+7/jmods/jdk.jshell.jmod
    /usr/local/fusionauth/java/jdk-14.0.1+7/jmods/jdk.jsobject.jmod
    /usr/local/fusionauth/java/jdk-14.0.1+7/jmods/jdk.jstatd.jmod
    /usr/local/fusionauth/java/jdk-14.0.1+7/jmods/jdk.localedata.jmod
    /usr/local/fusionauth/java/jdk-14.0.1+7/jmods/jdk.management.agent.jmod
    /usr/local/fusionauth/java/jdk-14.0.1+7/jmods/jdk.management.jfr.jmod
    /usr/local/fusionauth/java/jdk-14.0.1+7/jmods/jdk.management.jmod
    /usr/local/fusionauth/java/jdk-14.0.1+7/jmods/jdk.naming.dns.jmod
    /usr/local/fusionauth/java/jdk-14.0.1+7/jmods/jdk.naming.rmi.jmod
    /usr/local/fusionauth/java/jdk-14.0.1+7/jmods/jdk.net.jmod
    /usr/local/fusionauth/java/jdk-14.0.1+7/jmods/jdk.nio.mapmode.jmod
    /usr/local/fusionauth/java/jdk-14.0.1+7/jmods/jdk.rmic.jmod
    /usr/local/fusionauth/java/jdk-14.0.1+7/jmods/jdk.scripting.nashorn.jmod
    /usr/local/fusionauth/java/jdk-14.0.1+7/jmods/jdk.scripting.nashorn.shell.jmod
    /usr/local/fusionauth/java/jdk-14.0.1+7/jmods/jdk.sctp.jmod
    /usr/local/fusionauth/java/jdk-14.0.1+7/jmods/jdk.security.auth.jmod
    /usr/local/fusionauth/java/jdk-14.0.1+7/jmods/jdk.security.jgss.jmod
    /usr/local/fusionauth/java/jdk-14.0.1+7/jmods/jdk.unsupported.desktop.jmod
    /usr/local/fusionauth/java/jdk-14.0.1+7/jmods/jdk.unsupported.jmod
    /usr/local/fusionauth/java/jdk-14.0.1+7/jmods/jdk.xml.dom.jmod
    /usr/local/fusionauth/java/jdk-14.0.1+7/jmods/jdk.zipfs.jmod
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.base
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.compiler
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.datatransfer
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.desktop
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.instrument
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.logging
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.management
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.management.rmi
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.naming
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.net.http
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.prefs
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.rmi
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.scripting
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.se
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.security.jgss
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.security.sasl
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.smartcardio
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.sql
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.sql.rowset
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.transaction.xa
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.xml
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.xml.crypto
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.accessibility
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.aot
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.attach
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.charsets
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.compiler
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.crypto.cryptoki
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.crypto.ec
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.dynalink
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.editpad
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.hotspot.agent
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.httpserver
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.incubator.foreign
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.incubator.jpackage
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.internal.ed
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.internal.jvmstat
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.internal.le
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.internal.opt
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.internal.vm.ci
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.internal.vm.compiler
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.internal.vm.compiler.management
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.jartool
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.javadoc
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.jcmd
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.jconsole
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.jdeps
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.jdi
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.jdwp.agent
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.jfr
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.jlink
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.jshell
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.jsobject
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.jstatd
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.localedata
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.management
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.management.agent
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.management.jfr
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.naming.dns
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.naming.rmi
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.net
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.nio.mapmode
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.rmic
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.scripting.nashorn
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.scripting.nashorn.shell
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.sctp
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.security.auth
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.security.jgss
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.unsupported
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.unsupported.desktop
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.xml.dom
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.zipfs
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.base/ADDITIONAL_LICENSE_INFO
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.base/ASSEMBLY_EXCEPTION
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.base/LICENSE
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.base/aes.md
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.base/asm.md
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.base/c-libutl.md
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.base/cldr.md
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.base/icu.md
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.base/public_suffix.md
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.base/unicode.md
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.compiler/ADDITIONAL_LICENSE_INFO
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.compiler/ASSEMBLY_EXCEPTION
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.compiler/LICENSE
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.datatransfer/ADDITIONAL_LICENSE_INFO
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.datatransfer/ASSEMBLY_EXCEPTION
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.datatransfer/LICENSE
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.desktop/ADDITIONAL_LICENSE_INFO
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.desktop/ASSEMBLY_EXCEPTION
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.desktop/LICENSE
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.desktop/colorimaging.md
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.desktop/freetype.md
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.desktop/giflib.md
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.desktop/harfbuzz.md
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.desktop/jpeg.md
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.desktop/lcms.md
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.desktop/libpng.md
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.desktop/mesa3d.md
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.desktop/xwd.md
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.instrument/ADDITIONAL_LICENSE_INFO
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.instrument/ASSEMBLY_EXCEPTION
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.instrument/LICENSE
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.logging/ADDITIONAL_LICENSE_INFO
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.logging/ASSEMBLY_EXCEPTION
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.logging/LICENSE
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.management/ADDITIONAL_LICENSE_INFO
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.management/ASSEMBLY_EXCEPTION
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.management/LICENSE
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.management.rmi/ADDITIONAL_LICENSE_INFO
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.management.rmi/ASSEMBLY_EXCEPTION
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.management.rmi/LICENSE
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.naming/ADDITIONAL_LICENSE_INFO
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.naming/ASSEMBLY_EXCEPTION
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.naming/LICENSE
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.net.http/ADDITIONAL_LICENSE_INFO
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.net.http/ASSEMBLY_EXCEPTION
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.net.http/LICENSE
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.prefs/ADDITIONAL_LICENSE_INFO
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.prefs/ASSEMBLY_EXCEPTION
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.prefs/LICENSE
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.rmi/ADDITIONAL_LICENSE_INFO
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.rmi/ASSEMBLY_EXCEPTION
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.rmi/LICENSE
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.scripting/ADDITIONAL_LICENSE_INFO
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.scripting/ASSEMBLY_EXCEPTION
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.scripting/LICENSE
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.se/ADDITIONAL_LICENSE_INFO
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.se/ASSEMBLY_EXCEPTION
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.se/LICENSE
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.security.jgss/ADDITIONAL_LICENSE_INFO
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.security.jgss/ASSEMBLY_EXCEPTION
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.security.jgss/LICENSE
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.security.sasl/ADDITIONAL_LICENSE_INFO
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.security.sasl/ASSEMBLY_EXCEPTION
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.security.sasl/LICENSE
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.smartcardio/ADDITIONAL_LICENSE_INFO
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.smartcardio/ASSEMBLY_EXCEPTION
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.smartcardio/LICENSE
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.smartcardio/pcsclite.md
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.sql/ADDITIONAL_LICENSE_INFO
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.sql/ASSEMBLY_EXCEPTION
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.sql/LICENSE
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.sql.rowset/ADDITIONAL_LICENSE_INFO
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.sql.rowset/ASSEMBLY_EXCEPTION
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.sql.rowset/LICENSE
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.transaction.xa/ADDITIONAL_LICENSE_INFO
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.transaction.xa/ASSEMBLY_EXCEPTION
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.transaction.xa/LICENSE
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.xml/ADDITIONAL_LICENSE_INFO
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.xml/ASSEMBLY_EXCEPTION
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.xml/LICENSE
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.xml/bcel.md
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.xml/dom.md
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.xml/jcup.md
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.xml/xalan.md
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.xml/xerces.md
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.xml.crypto/ADDITIONAL_LICENSE_INFO
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.xml.crypto/ASSEMBLY_EXCEPTION
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.xml.crypto/LICENSE
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/java.xml.crypto/santuario.md
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.accessibility/ADDITIONAL_LICENSE_INFO
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.accessibility/ASSEMBLY_EXCEPTION
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.accessibility/LICENSE
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.aot/ADDITIONAL_LICENSE_INFO
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.aot/ASSEMBLY_EXCEPTION
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.aot/LICENSE
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.attach/ADDITIONAL_LICENSE_INFO
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.attach/ASSEMBLY_EXCEPTION
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.attach/LICENSE
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.charsets/ADDITIONAL_LICENSE_INFO
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.charsets/ASSEMBLY_EXCEPTION
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.charsets/LICENSE
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.compiler/ADDITIONAL_LICENSE_INFO
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.compiler/ASSEMBLY_EXCEPTION
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.compiler/LICENSE
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.crypto.cryptoki/ADDITIONAL_LICENSE_INFO
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.crypto.cryptoki/ASSEMBLY_EXCEPTION
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.crypto.cryptoki/LICENSE
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.crypto.cryptoki/pkcs11cryptotoken.md
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.crypto.cryptoki/pkcs11wrapper.md
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.crypto.ec/ADDITIONAL_LICENSE_INFO
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.crypto.ec/ASSEMBLY_EXCEPTION
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.crypto.ec/LICENSE
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.crypto.ec/ecc.md
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.dynalink/ADDITIONAL_LICENSE_INFO
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.dynalink/ASSEMBLY_EXCEPTION
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.dynalink/LICENSE
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.dynalink/dynalink.md
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.editpad/ADDITIONAL_LICENSE_INFO
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.editpad/ASSEMBLY_EXCEPTION
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.editpad/LICENSE
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.hotspot.agent/ADDITIONAL_LICENSE_INFO
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.hotspot.agent/ASSEMBLY_EXCEPTION
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.hotspot.agent/LICENSE
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.httpserver/ADDITIONAL_LICENSE_INFO
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.httpserver/ASSEMBLY_EXCEPTION
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.httpserver/LICENSE
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.incubator.foreign/ADDITIONAL_LICENSE_INFO
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.incubator.foreign/ASSEMBLY_EXCEPTION
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.incubator.foreign/LICENSE
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.incubator.jpackage/ADDITIONAL_LICENSE_INFO
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.incubator.jpackage/ASSEMBLY_EXCEPTION
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.incubator.jpackage/LICENSE
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.internal.ed/ADDITIONAL_LICENSE_INFO
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.internal.ed/ASSEMBLY_EXCEPTION
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.internal.ed/LICENSE
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.internal.jvmstat/ADDITIONAL_LICENSE_INFO
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.internal.jvmstat/ASSEMBLY_EXCEPTION
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.internal.jvmstat/LICENSE
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.internal.le/ADDITIONAL_LICENSE_INFO
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.internal.le/ASSEMBLY_EXCEPTION
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.internal.le/LICENSE
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.internal.le/jline.md
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.internal.opt/ADDITIONAL_LICENSE_INFO
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.internal.opt/ASSEMBLY_EXCEPTION
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.internal.opt/LICENSE
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.internal.opt/jopt-simple.md
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.internal.vm.ci/ADDITIONAL_LICENSE_INFO
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.internal.vm.ci/ASSEMBLY_EXCEPTION
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.internal.vm.ci/LICENSE
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.internal.vm.compiler/ADDITIONAL_LICENSE_INFO
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.internal.vm.compiler/ASSEMBLY_EXCEPTION
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.internal.vm.compiler/LICENSE
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.internal.vm.compiler.management/ADDITIONAL_LICENSE_INFO
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.internal.vm.compiler.management/ASSEMBLY_EXCEPTION
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.internal.vm.compiler.management/LICENSE
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.jartool/ADDITIONAL_LICENSE_INFO
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.jartool/ASSEMBLY_EXCEPTION
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.jartool/LICENSE
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.javadoc/ADDITIONAL_LICENSE_INFO
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.javadoc/ASSEMBLY_EXCEPTION
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.javadoc/LICENSE
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.javadoc/jquery.md
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.javadoc/jqueryUI.md
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.javadoc/jszip.md
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.jcmd/ADDITIONAL_LICENSE_INFO
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.jcmd/ASSEMBLY_EXCEPTION
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.jcmd/LICENSE
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.jconsole/ADDITIONAL_LICENSE_INFO
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.jconsole/ASSEMBLY_EXCEPTION
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.jconsole/LICENSE
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.jdeps/ADDITIONAL_LICENSE_INFO
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.jdeps/ASSEMBLY_EXCEPTION
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.jdeps/LICENSE
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.jdi/ADDITIONAL_LICENSE_INFO
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.jdi/ASSEMBLY_EXCEPTION
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.jdi/LICENSE
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.jdwp.agent/ADDITIONAL_LICENSE_INFO
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.jdwp.agent/ASSEMBLY_EXCEPTION
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.jdwp.agent/LICENSE
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.jfr/ADDITIONAL_LICENSE_INFO
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.jfr/ASSEMBLY_EXCEPTION
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.jfr/LICENSE
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.jlink/ADDITIONAL_LICENSE_INFO
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.jlink/ASSEMBLY_EXCEPTION
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.jlink/LICENSE
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.jshell/ADDITIONAL_LICENSE_INFO
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.jshell/ASSEMBLY_EXCEPTION
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.jshell/LICENSE
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.jsobject/ADDITIONAL_LICENSE_INFO
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.jsobject/ASSEMBLY_EXCEPTION
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.jsobject/LICENSE
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.jstatd/ADDITIONAL_LICENSE_INFO
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.jstatd/ASSEMBLY_EXCEPTION
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.jstatd/LICENSE
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.localedata/ADDITIONAL_LICENSE_INFO
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.localedata/ASSEMBLY_EXCEPTION
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.localedata/LICENSE
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.localedata/cldr.md
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.localedata/thaidict.md
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.management/ADDITIONAL_LICENSE_INFO
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.management/ASSEMBLY_EXCEPTION
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.management/LICENSE
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.management.agent/ADDITIONAL_LICENSE_INFO
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.management.agent/ASSEMBLY_EXCEPTION
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.management.agent/LICENSE
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.management.jfr/ADDITIONAL_LICENSE_INFO
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.management.jfr/ASSEMBLY_EXCEPTION
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.management.jfr/LICENSE
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.naming.dns/ADDITIONAL_LICENSE_INFO
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.naming.dns/ASSEMBLY_EXCEPTION
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.naming.dns/LICENSE
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.naming.rmi/ADDITIONAL_LICENSE_INFO
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.naming.rmi/ASSEMBLY_EXCEPTION
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.naming.rmi/LICENSE
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.net/ADDITIONAL_LICENSE_INFO
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.net/ASSEMBLY_EXCEPTION
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.net/LICENSE
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.nio.mapmode/ADDITIONAL_LICENSE_INFO
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.nio.mapmode/ASSEMBLY_EXCEPTION
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.nio.mapmode/LICENSE
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.rmic/ADDITIONAL_LICENSE_INFO
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.rmic/ASSEMBLY_EXCEPTION
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.rmic/LICENSE
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.scripting.nashorn/ADDITIONAL_LICENSE_INFO
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.scripting.nashorn/ASSEMBLY_EXCEPTION
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.scripting.nashorn/LICENSE
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.scripting.nashorn/double-conversion.md
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.scripting.nashorn/joni.md
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.scripting.nashorn.shell/ADDITIONAL_LICENSE_INFO
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.scripting.nashorn.shell/ASSEMBLY_EXCEPTION
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.scripting.nashorn.shell/LICENSE
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.sctp/ADDITIONAL_LICENSE_INFO
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.sctp/ASSEMBLY_EXCEPTION
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.sctp/LICENSE
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.security.auth/ADDITIONAL_LICENSE_INFO
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.security.auth/ASSEMBLY_EXCEPTION
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.security.auth/LICENSE
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.security.jgss/ADDITIONAL_LICENSE_INFO
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.security.jgss/ASSEMBLY_EXCEPTION
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.security.jgss/LICENSE
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.unsupported/ADDITIONAL_LICENSE_INFO
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.unsupported/ASSEMBLY_EXCEPTION
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.unsupported/LICENSE
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.unsupported.desktop/ADDITIONAL_LICENSE_INFO
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.unsupported.desktop/ASSEMBLY_EXCEPTION
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.unsupported.desktop/LICENSE
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.xml.dom/ADDITIONAL_LICENSE_INFO
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.xml.dom/ASSEMBLY_EXCEPTION
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.xml.dom/LICENSE
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.zipfs/ADDITIONAL_LICENSE_INFO
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.zipfs/ASSEMBLY_EXCEPTION
    /usr/local/fusionauth/java/jdk-14.0.1+7/legal/jdk.zipfs/LICENSE
    /usr/local/fusionauth/java/jdk-14.0.1+7/lib/classlist
    /usr/local/fusionauth/java/jdk-14.0.1+7/lib/ct.sym
    /usr/local/fusionauth/java/jdk-14.0.1+7/lib/jexec
    /usr/local/fusionauth/java/jdk-14.0.1+7/lib/jfr
    /usr/local/fusionauth/java/jdk-14.0.1+7/lib/jrt-fs.jar
    /usr/local/fusionauth/java/jdk-14.0.1+7/lib/jspawnhelper
    /usr/local/fusionauth/java/jdk-14.0.1+7/lib/jvm.cfg
    /usr/local/fusionauth/java/jdk-14.0.1+7/lib/libattach.so
    /usr/local/fusionauth/java/jdk-14.0.1+7/lib/libawt.so
    /usr/local/fusionauth/java/jdk-14.0.1+7/lib/libawt_headless.so
    /usr/local/fusionauth/java/jdk-14.0.1+7/lib/libawt_xawt.so
    /usr/local/fusionauth/java/jdk-14.0.1+7/lib/libdt_socket.so
    /usr/local/fusionauth/java/jdk-14.0.1+7/lib/libextnet.so
    /usr/local/fusionauth/java/jdk-14.0.1+7/lib/libfontmanager.so
    /usr/local/fusionauth/java/jdk-14.0.1+7/lib/libfreetype.so
    /usr/local/fusionauth/java/jdk-14.0.1+7/lib/libinstrument.so
    /usr/local/fusionauth/java/jdk-14.0.1+7/lib/libj2gss.so
    /usr/local/fusionauth/java/jdk-14.0.1+7/lib/libj2pcsc.so
    /usr/local/fusionauth/java/jdk-14.0.1+7/lib/libj2pkcs11.so
    /usr/local/fusionauth/java/jdk-14.0.1+7/lib/libjaas.so
    /usr/local/fusionauth/java/jdk-14.0.1+7/lib/libjava.so
    /usr/local/fusionauth/java/jdk-14.0.1+7/lib/libjavajpeg.so
    /usr/local/fusionauth/java/jdk-14.0.1+7/lib/libjawt.so
    /usr/local/fusionauth/java/jdk-14.0.1+7/lib/libjdwp.so
    /usr/local/fusionauth/java/jdk-14.0.1+7/lib/libjimage.so
    /usr/local/fusionauth/java/jdk-14.0.1+7/lib/libjli.so
    /usr/local/fusionauth/java/jdk-14.0.1+7/lib/libjsig.so
    /usr/local/fusionauth/java/jdk-14.0.1+7/lib/libjsound.so
    /usr/local/fusionauth/java/jdk-14.0.1+7/lib/liblcms.so
    /usr/local/fusionauth/java/jdk-14.0.1+7/lib/libmanagement.so
    /usr/local/fusionauth/java/jdk-14.0.1+7/lib/libmanagement_agent.so
    /usr/local/fusionauth/java/jdk-14.0.1+7/lib/libmanagement_ext.so
    /usr/local/fusionauth/java/jdk-14.0.1+7/lib/libmlib_image.so
    /usr/local/fusionauth/java/jdk-14.0.1+7/lib/libnet.so
    /usr/local/fusionauth/java/jdk-14.0.1+7/lib/libnio.so
    /usr/local/fusionauth/java/jdk-14.0.1+7/lib/libprefs.so
    /usr/local/fusionauth/java/jdk-14.0.1+7/lib/librmi.so
    /usr/local/fusionauth/java/jdk-14.0.1+7/lib/libsaproc.so
    /usr/local/fusionauth/java/jdk-14.0.1+7/lib/libsctp.so
    /usr/local/fusionauth/java/jdk-14.0.1+7/lib/libsplashscreen.so
    /usr/local/fusionauth/java/jdk-14.0.1+7/lib/libsunec.so
    /usr/local/fusionauth/java/jdk-14.0.1+7/lib/libverify.so
    /usr/local/fusionauth/java/jdk-14.0.1+7/lib/libzip.so
    /usr/local/fusionauth/java/jdk-14.0.1+7/lib/modules
    /usr/local/fusionauth/java/jdk-14.0.1+7/lib/psfont.properties.ja
    /usr/local/fusionauth/java/jdk-14.0.1+7/lib/psfontj2d.properties
    /usr/local/fusionauth/java/jdk-14.0.1+7/lib/security
    /usr/local/fusionauth/java/jdk-14.0.1+7/lib/server
    /usr/local/fusionauth/java/jdk-14.0.1+7/lib/src.zip
    /usr/local/fusionauth/java/jdk-14.0.1+7/lib/tzdb.dat
    /usr/local/fusionauth/java/jdk-14.0.1+7/lib/jfr/default.jfc
    /usr/local/fusionauth/java/jdk-14.0.1+7/lib/jfr/profile.jfc
    /usr/local/fusionauth/java/jdk-14.0.1+7/lib/security/blacklisted.certs
    /usr/local/fusionauth/java/jdk-14.0.1+7/lib/security/cacerts
    /usr/local/fusionauth/java/jdk-14.0.1+7/lib/security/default.policy
    /usr/local/fusionauth/java/jdk-14.0.1+7/lib/security/public_suffix_list.dat
    /usr/local/fusionauth/java/jdk-14.0.1+7/lib/server/classes.jsa
    /usr/local/fusionauth/java/jdk-14.0.1+7/lib/server/libjsig.so
    /usr/local/fusionauth/java/jdk-14.0.1+7/lib/server/libjvm.so
    /usr/local/fusionauth/java/jdk-14.0.1+7/man/man1
    /usr/local/fusionauth/java/jdk-14.0.1+7/man/man1/jaotc.1
    /usr/local/fusionauth/java/jdk-14.0.1+7/man/man1/jar.1
    /usr/local/fusionauth/java/jdk-14.0.1+7/man/man1/jarsigner.1
    /usr/local/fusionauth/java/jdk-14.0.1+7/man/man1/java.1
    /usr/local/fusionauth/java/jdk-14.0.1+7/man/man1/javac.1
    /usr/local/fusionauth/java/jdk-14.0.1+7/man/man1/javadoc.1
    /usr/local/fusionauth/java/jdk-14.0.1+7/man/man1/javap.1
    /usr/local/fusionauth/java/jdk-14.0.1+7/man/man1/jcmd.1
    /usr/local/fusionauth/java/jdk-14.0.1+7/man/man1/jconsole.1
    /usr/local/fusionauth/java/jdk-14.0.1+7/man/man1/jdb.1
    /usr/local/fusionauth/java/jdk-14.0.1+7/man/man1/jdeprscan.1
    /usr/local/fusionauth/java/jdk-14.0.1+7/man/man1/jdeps.1
    /usr/local/fusionauth/java/jdk-14.0.1+7/man/man1/jfr.1
    /usr/local/fusionauth/java/jdk-14.0.1+7/man/man1/jhsdb.1
    /usr/local/fusionauth/java/jdk-14.0.1+7/man/man1/jinfo.1
    /usr/local/fusionauth/java/jdk-14.0.1+7/man/man1/jjs.1
    /usr/local/fusionauth/java/jdk-14.0.1+7/man/man1/jlink.1
    /usr/local/fusionauth/java/jdk-14.0.1+7/man/man1/jmap.1
    /usr/local/fusionauth/java/jdk-14.0.1+7/man/man1/jmod.1
    /usr/local/fusionauth/java/jdk-14.0.1+7/man/man1/jpackage.1
    /usr/local/fusionauth/java/jdk-14.0.1+7/man/man1/jps.1
    /usr/local/fusionauth/java/jdk-14.0.1+7/man/man1/jrunscript.1
    /usr/local/fusionauth/java/jdk-14.0.1+7/man/man1/jshell.1
    /usr/local/fusionauth/java/jdk-14.0.1+7/man/man1/jstack.1
    /usr/local/fusionauth/java/jdk-14.0.1+7/man/man1/jstat.1
    /usr/local/fusionauth/java/jdk-14.0.1+7/man/man1/jstatd.1
    /usr/local/fusionauth/java/jdk-14.0.1+7/man/man1/keytool.1
    /usr/local/fusionauth/java/jdk-14.0.1+7/man/man1/rmic.1
    /usr/local/fusionauth/java/jdk-14.0.1+7/man/man1/rmid.1
    /usr/local/fusionauth/java/jdk-14.0.1+7/man/man1/rmiregistry.1
    /usr/local/fusionauth/java/jdk-14.0.1+7/man/man1/serialver.1

I think that it isn't a reasonable expectation that a script which installs a bunch of things, including multiple RPMs, should safely uninstall everything when someone manually removes one of the RPMs it installed.

Tells me all I need to know.

if you would like.

pass. thx. sticking with foss alternatives makes more sense.

voidmain commented 3 years ago

It sounds like @pgnd has moved on from FusionAuth, but I want to reply to the last comment for anyone else that finds this issue.

As I mentioned in one of my previous comments, the JDK will remain because it is a shared component and FusionAuth installs outside of the RPM. FusionAuth uses a shared JDK to help reduce the size of our RPMs and DEBs. Originally, we would include the full JDK in the packages, and it added quite a bit of overhead.

Since we now use a shared JDK, we don't really know if other FusionAuth components are still using it, hence the reason that we don't delete it.

The same is true for many of the other directories that remain such as bin and log. Those are shared directories and we don't delete them in case other packages are using them.

If any of this becomes an issue, we can look into options to delete the JDK and the other directories if the RPM can definitively determine if no other packages are using it.