tnodir / fort

Fort Firewall for Windows
GNU General Public License v3.0
1.11k stars 97 forks source link

Fort Firewall for Winget #148

Closed Emi-Emi-Emi closed 6 months ago

Emi-Emi-Emi commented 7 months ago

I don't know how easy is to add or maintain the Winget packages to https://github.com/microsoft/winget-pkgs

Apparently they say it can be easily created and updated with: https://github.com/microsoft/winget-create.

But it would be nice if we could just go to terminal and add winget install fort.firewall and done, or well, update it it with upgrade.

The only requirement would be Fort Firewall has to have a silent installation mode in place so it can be used in Winget with it.

There is a issue opened to allow non-silent installations, in case, but it has been there for a while https://github.com/microsoft/winget-cli/issues/910 with no signs of life and won't happen until who knows when.

Winget is preinstalled in all Win11, so this makes it a good thing for tech experts, but even for people who are not tech savvy, so it is easier for them to install Fort without too complicated steps, just terminal, run command and done.

tnodir commented 7 months ago

Fort's installer already supports /SILENT argument (due InnoSetup).

Emi-Emi-Emi commented 6 months ago

Oh nice. I didn't know if it did or not, I guess my post sounded like Fort didn't but I meant a requirement was the silent installation, if not waiting for them to fix that issue which would allow more programs to be in Winget. 👍

Emi-Emi-Emi commented 6 months ago

Ok. I have made progress about this, it's been time consuming and messy, but I am getting somewhere and it should be in Winget packages repository soon.

With the tests I was making I found an issue with the installer, which applies to everyone.

Since Winget has to be a silent installation, it also has the 'dependencies' to install dependencies first before the installer, which is great.

Now the problem is https://github.com/tnodir/fort/blob/af6218419e4fe9c75b6a0b32f232ee62b3e4e99e/deploy/FortFirewall.iss#L146 is only checking for VCRedistx86, so when I made Fort haveMicrosoft.VCRedist.2015+.x64 dependency, it still only checked for the x86 version, and while it will not throw any error of 'not finding the dll', it still opens the browser and the website to download the latest one.

This is why I was getting an error in dependencies, first I thought Microsoft.VCRedist.2015+.x86 was the one needed package, but then I got the msvcp140.dll missing error, and then checking further, I added the correctly package and in the sandbox test the MS website opens even after VCRedist was installed correctly.

Apparently, while winget doesn't like scripts, but there is no issues installing the driver, or they complaining about it or the sandbox test failing for it, but I don't know if more validations of the installer will complain about it. At least there is no tests or issues with the driver throwing the memory integrity/core isolation problem. I still added to the Description the warning, even if Fort installer also display the warning in the installer.

But this is one problem I found doing tests, not a big problem, but it should be detected per architecture, so doesn't open the browser for x64/ARM(?) systems.

tnodir commented 6 months ago

But this is one problem I found doing tests

Fixed by b15d80f1.

tnodir commented 6 months ago

Please check the v3.10.5-test0.

Emi-Emi-Emi commented 6 months ago

Tested x64 on both interactive and silent and manifest installed with no issues in Sandbox. 👍

Emi-Emi-Emi commented 6 months ago

BTW, the only thing I saw is that installer has 'Launch Fort Firewall' checked on interactive, but in silent the program doesn't open after being installed. But not an issue.

tnodir commented 6 months ago

@Emi-Emi-Emi Thank you for your feedback! Marry Christmas and best wishes for 2024!

tnodir commented 6 months ago

the only thing I saw is that installer has 'Launch Fort Firewall' checked on interactive, but in silent the program doesn't open after being installed.

It's because of skipifsilent flag. We can add cmd line argument to run it, if needed.

Emi-Emi-Emi commented 6 months ago

It could be added if you want, but it is not needed for Winget.

But for example, since I add FortFirewall to PATH, then I can just type FortFirewall after using winget, or do what I already do, start /wait FortFirewall-3.10.5-test1-windows10-x86_64.exe /silent && FortFirewall.exe and done, plus I use Powertoys Run so it is fast, but there is Start Menu for the normal people, so there is no issue about opening Fort after silently install it, so it would be just more convenient to open it automatically, just as interactive has the option. If anything, Winget manifest can also have custom arguments for the installer too.

Emi-Emi-Emi commented 6 months ago

Finally it passed the checks 👍No issues with scripts, driver or anything. https://github.com/microsoft/winget-pkgs/pull/132381

The reason it didn't pass before in my last two tries was for dependencies and then because of a space I missed for the YAML format to work, although it didn't throw any error in my side, it did on the Azure pipeline, I figured it could be that and fixed it, but waited until today to make the PR for the newer version.