Foxit package shell

Questions about WAPT Packaging / Requests and help regarding Wapt packages.
Forum Rules
Community Forum Rules
* English support on www.reddit.com/r/wapt
* French community support is available on this forum
* Please prefix the topic title with [RESOLVED] if it is resolved.
* Please do not edit a topic that is tagged [RESOLVED]. Open a new topic referencing the old one.
* Specify the installed WAPT version, full version, and build number (2.2.1.11957 / 2.2.2.12337 / etc.) as well as the Enterprise/Discovery edition.
* Versions 1.8.2 and earlier are no longer supported. The only questions accepted regarding version 1.8.2 are related to upgrading to a supported version (2.1, 2.2, etc.).
* Specify the server OS (Linux/Windows) and version (Debian Buster/Bullseye - CentOS 7 - Windows Server 2012/2016/2019).
* Specify the OS of the administration/package creation machine and the machine with the problematic agent, if applicable (Windows 7/10/11/Debian 11/etc.).
* Avoid asking multiple questions when opening a topic, otherwise it may be ignored. If there are multiple topics, open separate topics, preferably one after the other and not all at the same time (i.e., do not spam the forum).
* Include code snippets, screenshots, and other images directly in the post. Links to Pastebin, Bitly, and other third-party sites will be systematically removed.
* As with any community forum, support is provided voluntarily by members. If you require commercial support, you can contact Tranquil IT's sales department at 02.40.97.57.55
Answer
Balem
Messages: 6
Registration: August 24, 2023 - 11:45

May 4, 2026 - 4:33 PM

Good morning,
We are importing the Foxit package in DEV maturity to install it on a few workstations to ensure that there are no side effects.
When we switch the package to PROD, it deletes the "Foxit Software" folders but does not reinstall the software because the version is identical.
Do you think that the deletion of folders should be included in the 'if' condition to correct this typo?
THANKS

Code: Select all

for to_uninstall in installed_softwares(name="Foxit PDF Reader"):
	if Version(to_uninstall["version"]) < Version(control.get_software_version()) or force:
		print(f"Removing: {to_uninstall['name']} ({to_uninstall['version']})")
		killalltasks(ensure_list(control.impacted_process))
		run(uninstall_cmd(to_uninstall["key"]))
		wait_uninstallkey_absent(to_uninstall["key"])

old_app_dir = makepath(programfiles32, "Foxit Software", "Foxit Reader")
if isdir(old_app_dir):
	remove_tree(old_app_dir)

old_app_dir = makepath(programfiles, "Foxit Software")
if isdir(old_app_dir):
	remove_tree(old_app_dir)

# Installing the package
install_exe_if_needed(
	bin_name,
	silentflags="/quiet",
	timeout=900,
	name="Foxit PDF Reader",
	min_version=control.get_software_version(),
)
italbot
Messages: 61
Registration: Sep 26, 2023 - 3:50 p.m.

May 4, 2026 - 4:59 PM

Good morning,

From what I can see in the code, the uninstallation in the install() function only runs if the version is lower:
if Version(to_uninstall["version"]) < Version(control.get_software_version()) or force:
If you remove this condition, the uninstallation should proceed, even if it's the same version.
You can also modify it in this way:
if Version(to_uninstall["version"]) <= Version(control.get_software_version()) or force:
Sincerely,

Ingrid
Tranquil IT
Balem
Messages: 6
Registration: August 24, 2023 - 11:45

May 5, 2026 - 08:52

Hello, thank you for this feedback. The idea is to indent the deletion of folders after uninstallation (if it occurs)

Code: Select all

for to_uninstall in installed_softwares(name="Foxit PDF Reader"):
	if Version(to_uninstall["version"]) < Version(control.get_software_version()) or force:
		print(f"Removing: {to_uninstall['name']} ({to_uninstall['version']})")
		killalltasks(ensure_list(control.impacted_process))
		run(uninstall_cmd(to_uninstall["key"]))
		wait_uninstallkey_absent(to_uninstall["key"])

		old_app_dir = makepath(programfiles32, "Foxit Software", "Foxit Reader")
		if isdir(old_app_dir):
			remove_tree(old_app_dir)

		old_app_dir = makepath(programfiles, "Foxit Software")
		if isdir(old_app_dir):
			remove_tree(old_app_dir)

# Installing the package
install_exe_if_needed(
	bin_name,
	silentflags="/quiet",
	timeout=900,
	name="Foxit PDF Reader",
	min_version=control.get_software_version(),
)
italbot
Messages: 61
Registration: Sep 26, 2023 - 3:50 p.m.

May 5, 2026 - 09:10

Hello,

Yes, you can do that in addition, but you will still need to modify the version comparison condition; otherwise, nothing will be uninstalled before the installation.

Sincerely,

Ingrid
Tranquil IT
Answer