npcap icon indicating copy to clipboard operation
npcap copied to clipboard

Distribution via Winget?

Open janpio opened this issue 3 years ago • 4 comments

I just got a new Windows laptop and am installing all the software I need - which includes Wireshark and this project to make it really useful. Until now Winget has been a great way to install all my required tools from the command line in a scalable way - but unfortunately npcap is not available there.

It would be great if that could be changed.

With an installer already existing, I don't think there would be any bigger hurdles to overcome.

janpio avatar Mar 12 '22 21:03 janpio

Unattended automatic download and installation does not fit with Npcap's license and distribution requirements. A more complete discussion of this issue is in #520 .

dmiller-nmap avatar Mar 25 '22 18:03 dmiller-nmap

Hm, that is a shame. A lot of that discussion is about hundreds of installations, but I really just want to use Winget to have a nice tool to manage the software I install on my computer (vs. downloading installers, managing updates and so on). Of course the project's decision.

janpio avatar Mar 25 '22 19:03 janpio

Thanks for the clarification @janpio. I'm glad you brought this tool to our attention as we are always exploring the best digital distribution platforms for Npcap (and Nmap). Winget is particularly interesting as a new (first released in mid-2020) Microsoft-developed and supported mechanism for independent software vendors to distribute their packages. I might try it on my own Windows systems instead of the other package managers I use.

Npcap includes a system device driver, so the package manager would obviously need to support those. From some quick searching it's not completely clear whether Winget or the Windows Store can handle device drivers. Does anyone know for sure whether it can? Examples of drivers installed by Winget and/or using the Windows Store would be great.

Another major requirement is that Npcap or Npcap OEM distribution platforms need to either support Npcap's existing business model, or possibly an alternative/additional model. We are only able to pay developers to improve and maintain Npcap thanks to revenue from the Npcap OEM program. The OEM Edition allows organizations to automate Npcap deployment with a silent installer and also gain additional internal usage rights (the free version license has a 5-install limit in many cases) and commercial support. Or they can buy the Npcap OEM redistribution license to distribute Npcap OEM with their own software. We don't have enough employees doing this now and our current goal is to increase revenue and hire more.

While the revenue is essential for the project to survive so it isn't abandoned like the free WinPcap and Win10Pcap projects were, our current mechanisms can impose undesirable friction on the process of downloading, installing, and keeping Npcap up to date. And even the process of buying Npcap OEM imposes much more friction than it should on both the customers and us (the Nmap Project). I spend hours every day dealing with sending quotes, purchase orders, invoices, creating customer accounts and license certificates, vendor onboarding, contract negotiation, accounting, taxes, renewals, etc. It also makes the purchase process take days (usually) when payment and delivery could and should be immediate. So a better digital distribution system could benefit everyone involved.

The purchase process is involved enough that we don't have any middle ground between the free Npcap license and the 100-seat Npcap OEM license costing US$2,900. In an ideal world, a user like you could maybe pay a small amount to have your own single-user license of Npcap OEM which can be installed and kept up to date using package management systems that are convenient for you. All in a few clicks (or a simple command line invocation). This isn't revolutionary. It's what we're used to with app stores on our phone already. Npcap is just so new that we haven't found and implemented a good fit yet. It's high on our priority list though, and we welcome all suggestions.

Our current near-term plan is to build an online "Npcap store" where people can go to buy Npcap licenses for immediate payment and delivery. But a system like Winget could be even better if we can find one which meets our needs. It could make delivery and payment seamless just like the store, but also add in the software installation, management, and automatic updates if desired. It could also help with tracking the number of users/installs so customers could only pay for what they need. Right now we offer just the 100, 500, and unlimited options besides the free/demo version.

Getting back to Winget itself, the problematic limitations I see are:

  • It's not clear to me whether it can even support system device drivers such as Npcap or is only for User mode applications.
  • It's not clear to me whether it can support payment for apps like Npcap OEM. Microsoft mentions a Windows Store integration but that may only be for free apps and I'm not sure the Windows Store supports drivers either.
  • Can it handle any sort of usage counting? If we put the free/demo version of Npcap on there, we might want to limit it to a small number of installs to avoid companies inadvertently bypassing the 5-install limit in its license agreement. Note that the 5-install limit doesn't apply to usage solely with Nmap or Wireshark. If they handle payment, we could potentially put Npcap OEM on there and usage counting would help us charge just a small amount for companies and individuals only using a small number of copies while charging more for those deploying Npcap OEM across huge enterprises.

I'll re-open this ticket since I am interested in the discussion and would be happy to hear suggestions on how to implement these goals with Winget or other software. I'd also be happy to hear about any other drivers and/or paid software using winget or other popular package managers that we could sort of use as a model. Since this is a broader issue than just Winget, I'll probably open a new broader ticket as well.

fyodor avatar Mar 25 '22 20:03 fyodor

Thanks for the additional insight.

I just learned that the licence even has a special case for Wireshark, which is how I learned about Npcap - so I am even a user that only wants to install on 1 machine, to use for a use case where doing more would not even be a problem for the licence 😆 🤷

As far as I know Winget can run any self contained installer. Sometimes I have to approve installations (for permissions reasons). What these installers do is totally up to them. Creating a package for Winget also seems to be pretty simple: You just need public URLs for your installers and then create a few yaml files (manifests), validate these and then commit them to a public GitHub repository. Here is an example for Notepad++: https://github.com/microsoft/winget-pkgs/tree/2264d2753c184a3872f7fc098a6db5f2deca038a/manifests/n/Notepad%2B%2B/Notepad%2B%2B/8.3.3 As you already have the installer, it might be as simple as creating the automation to create and update the yaml files and submit the PRs (both of which is automatable via e.g. GH Actions.)

I don't think Winget has any commercial model or approaches behind it - it really is "just" a package manager where you say which package you want, it checks if it knows about that and then downloads and installs it. It does not do anything App Store like at all. (The Microsoft Store would be the MS equivalent to that, and although you can also install apps from that via Winget, I completely avoid it.)

From your description a way forward could be to only offer Npcap Free Edition via Winget. For users like me (1 computer, Wireshark user), that would be pretty much the same as going to https://npcap.com/, not reading much and just clicking the first link that mentions installer under the Download headline (At least that is my usual process...) and then run that. Just much cleaner via winget install.

janpio avatar Mar 25 '22 21:03 janpio

I looked up npcap because i randomly saw it in the list of installed software on my notebook (can't remember why i have it.. fiddler? wireshark? snort? i use them all occasionally). Anyway i saw that a newer version was available for download, so i instinctively, immediately, ran:

winget upgrade npcap
choco upgrade npcap
scoop update npcap

and then i was like :((

In all seriousness, concerning your 3 points, @fyodor:

  1. Even if it requires a graphical installation, user confirmation, administrator privileges, reboot, etc, i think it could be done :) Via choco and winget you can install Virtualbox, which requires kernel drivers and/or reboot, if i remember correctly. On scoop, since it's meant to be used for "user scoped", locally installed apps, i don't think it would be possible at all.
  2. I don't know anything about possible payments integrations for the OEM version, sorry. But it would be really cool if at least the free version was available via one of these channels. [ also, i mean, if there's a will, there's a way.. nothing's stopping people from creating a simple script that fetches the latest available build, downloads it, builds it, and starts the installation; or even simpler, a script that fetches the website's source, parses it and extrapolates the link to download the ready-to-go installer ]
  3. I know nothing at all about usage counting, for the OEM version, sorry. But surely, choco and winget and whatever can provide stats about downloads, for this hypothetical free version.. Also, choco installations are just powershell scripts, that usually download right from the software's original website, so you could track downloads on your website's server-side scripts, if that's how you (possibly) already monitor for license infringements (like more than 5 downloads from the same IP). I don't know.

have a nice day

PS: also apparently npcap already was on choco? https://community.chocolatey.org/packages/npcap

aetonsi avatar May 05 '23 13:05 aetonsi

For what it is worth, we've worked with the PatchMyPC folks to support Npcap OEM for automated deployment. They don't have a "store" to handle payment, so you still need to buy Npcap OEM the normal way and then you upload the installer binary to a private repo using their system. And they track new Npcap releases so they can tell you when yours needs updating.

We have customers using many other automated deployment solutions with Npcap OEM as well.

But in your case, if it's just for your one notebook computer, it may be easier (and certainly would be cheaper) to just download the free/demo version of Npcap and install that in a few clicks.

I'm closing this issue because it's more of a discussion than something actionable and I don't want to clog the issue tracker with those. People can still leave comments on "closed" issues and we always welcome your ideas.

fyodor avatar May 16 '23 22:05 fyodor

Yeah you're right thanks for making me notice i turned it into a discussion. So should we continue here in the comments or in a new discussion? (i don't see where to open a discussion, so i'll go on down here, and if there will be a separate discussion, i'll cut+paste my comment there)


Yes, for sure installing npcap is just a few clicks, i don't deny that. It's only that, even a few clicks+waiting for download+opening the installer+UAC prompt+installing+closing the installer, multiplied for even just ~15/20 apps (which is more or less the number of updates i get weekly, running my update script), becomes a pain and takes about 30-45 minutes (mostly download time) and constant interruptions, for each installation.

Things like winget and choco take that pain away, mostly, thanks to silent installs. But as i think i said it would be perfectly fine even to have a GUI install for npcap: since just a few of the apps installed via package managers have graphical installations (i remember for example Visual Studio Community), it's still way better than having to stop for each of the ~15 installs.

But having to remember which apps are not installable via any package manager, now that becomes tedious...

PS: if you think ~15/20 apps updating each week seems a lot, it's not, if you have installed 150+ apps via choco.. (not counting the winget-only apps because i don't have the time to filter out the ones i install via choco already)

aetonsi avatar May 18 '23 10:05 aetonsi