Giter Club home page Giter Club logo

Comments (31)

levicki avatar levicki commented on May 29, 2024 2

@ElPumpo
You should not assume that people have WinRAR and 7-Zip.

If you want to automatically extract the driver why not just use SevenZipSharp, and save both users and yourself the trouble?

https://sevenzipsharp.codeplex.com/

from tinynvidiaupdatechecker.

ElPumpo avatar ElPumpo commented on May 29, 2024 1

Correction: the drivers e.g 385.41-desktop-win10-64bit-international-whql.exe are inside a 7zip SFX archive. I'll look into alternatives! Damn you do constructive feedback!

from tinynvidiaupdatechecker.

SirMarth01 avatar SirMarth01 commented on May 29, 2024 1

The 7-Zip Extra download offers a command line executable and a DLL. Just pointing 7-Zip to the driver executable was enough to get 7-Zip to extract it on my system, even through the command line version. I can't speak as to how to go about implementing 7-Zip into your program, but it's probably the best way forward.

from tinynvidiaupdatechecker.

ElPumpo avatar ElPumpo commented on May 29, 2024 1

You should not assume that people have WinRAR and 7-Zip
well I do..

and as I've already said above, I really don't want to add more libaries that I ship with the application

from tinynvidiaupdatechecker.

berserkwarwolf avatar berserkwarwolf commented on May 29, 2024 1

Thanks @ElPumpo for using the better AND open source alternative !

from tinynvidiaupdatechecker.

ElPumpo avatar ElPumpo commented on May 29, 2024 1

So after some research I'm left confused yet again

Why did you recommend me SevenZipSharp?!

  • has not been updated since 2011
  • still requires 7zip installed (7zip binaries, 7z.dll etc)
  • NO documentation

I'm not ready to pack 5000 dll files into TNUC, sorry. Unless I find another solution to this, I guess will stay with what I'm already using...

and I still want an answer for:

who doesn't have either winrar or 7zip on their computer?

from tinynvidiaupdatechecker.

levicki avatar levicki commented on May 29, 2024 1

@ElPumpo
Yes, SevenZipSharp project is old and seems abandoned, but it is the only fully functional wrapper around the COM interface from 7z.dll and its LZMA SDK. If you prefer writing your own from scratch be my guest.

As for what is needed for distribution the only thing you need besides SevenZipSharp.dll is 7z.dll which contains actual decompression code. The advantage of this approach is that you can do everything from your own application process.

You have another option and that would be to bundle 7za.exe with your application, then launch it as a process from your code and wait for it to finish, but unless you create pipes for STDIN and STDOUT to communicate with 7za.exe process (which still requires good Windows API knowledge and some marshalling) you won't be able to display the decompression progress, not to mention that launching console apps in a separate process when there is a programatic way of doing decompression is ugly.

As to who doesn't have 7-Zip or WinRAR, the answer is approx. 95% of PC users, because most of them are happy with built-in Windows ZIP support. You can argue that those 95% don't need your program, but I'd say that even those who have 7-Zip don't because they can find and download and extract the driver on their own. For a program to be useful it has to offer a signiicant amount of convenience and this convenience will always be more significant to those who are not tech savvy already.

It's your project anyway, so do as you wish. Hopefully you find my advice at least helpful.

from tinynvidiaupdatechecker.

pulse-wave avatar pulse-wave commented on May 29, 2024 1

@ElPumpo I'm glad you're taking in consideration to switch to 7zip way to go!
thanks!!
Personally I never installed winrar being shareware, plus 7zip is far better at archiving than winrar so it's a win\win :), can't wait to see it implemented in a non beta version thanks!

from tinynvidiaupdatechecker.

ElPumpo avatar ElPumpo commented on May 29, 2024

EDIT: And now realizing that the problem might not be unRAR but SFX. Entirety of everything above might be useless.

haha exactly, seems like I only have 1 choice:

  • make 7zip compatiable (cuz it works aswell)
    • but would require it to be installed by the user? i don't want to ship an extra libary
    • still gotta confirm some command line arguments

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\7-Zip MainConsole.cs#L998
namnlos

from tinynvidiaupdatechecker.

SirMarth01 avatar SirMarth01 commented on May 29, 2024

On the one hand, 7-zip is pretty commonly used, I imagine especially among potential users of this program.

On the other hand, forcing the user to install a program that they have to obtain elsewhere to access a feature is also undesirable.

Proposal: offer both options? Ship two ZIP files, one with 7za.exe (7za.dll only handles 7z format; if you planned on using a .dll instead of an .exe, you'll need the regular 7z.dll.) and one without. (Include HTML Agility Pack in both, for convenience.)

EDIT: Fun fact: even if you included the larger 64-bit version of 7za.exe, you'd still be able to fit it all onto a floppy disk. 1440 KiB per floppy disk vs. 1365 KiB for 7za 64-bit, HtmlAgilityPack, and the UpdateChecker.

from tinynvidiaupdatechecker.

ElPumpo avatar ElPumpo commented on May 29, 2024

Ok but who doesn't have either winrar or 7zip on their computer? I even wanted to remove html agility pack because it made the application less portable.

from tinynvidiaupdatechecker.

levicki avatar levicki commented on May 29, 2024

You are free to do as you wish, but then you will have less people using your application, which defeats the purpose of making it available to everyone in the first place. WinRAR is not free software -- it is shareware, and shareware cannot be used for free past the initial trial period.

from tinynvidiaupdatechecker.

ElPumpo avatar ElPumpo commented on May 29, 2024

TinyNvidiaUpdateChecker v1.9.0 beta 1.zip
build with 7zip support! oh i forgot to tell y'all i was working on this :D

from tinynvidiaupdatechecker.

ElPumpo avatar ElPumpo commented on May 29, 2024

Important: if the application crashes whilst trying to download htmlagilitypack it's because it isn't released yet on github, and the application assumes that it exists there. I've also updated to the new version of htmlagilitypack so you have to download it manually because I haven't released a version yet with the new libary file!
Workaround: download the latest version of htmlagilitypack HtmlAgilityPack.zip

@berserkwarwolf thanks for the feedback! and to correct you I never dropped support for winrar, instead i extended the support. Feel free to post more feedback if you have any!

from tinynvidiaupdatechecker.

seagull avatar seagull commented on May 29, 2024

Would you consider having a download for the 7ZipSharp library in case it is absent, like you do for HTMLAgilityPack? That way you only need to ship a single executable.

from tinynvidiaupdatechecker.

MikeZeDev avatar MikeZeDev commented on May 29, 2024

You can always ship 7ZipSharp and HtmlAgilityPack as binary resources and use them dynamically if you are so concerned about libraries.

Or include their source in your own maybe?

It would require more programming but i think its better than downloading them. I am not fan of program downloading libraries, people may argue that is a security problem. Any solution would be better than an already installed program

from tinynvidiaupdatechecker.

ElPumpo avatar ElPumpo commented on May 29, 2024

You know what, I'll have look into shipping the app with the libaries then... But I'm not sure about the license... HAP is licensed under MIT so I think I can include it, 7zipsharp is under LGPL?

from tinynvidiaupdatechecker.

levicki avatar levicki commented on May 29, 2024

@ElPumpo
Yes, under LGPL 3.0: http://www.gnu.org/licenses/lgpl.html

In short, to distribute SevenZipSharp you need to:

  1. Give prominent notice with each copy of the object code that the Library is used in it and that the Library and its use are covered by this License.
  2. Accompany the object code with a copy of the GNU GPL and this license document.

In any case, it is better to distribute both AgilityPack and SevenZipSharp because you control the version, new versions may break your program be it intentionally (API change) or unintentionally (bug).

from tinynvidiaupdatechecker.

ElPumpo avatar ElPumpo commented on May 29, 2024

Ok @levicki thanks for the info!

from tinynvidiaupdatechecker.

levicki avatar levicki commented on May 29, 2024

@ElPumpo
You are welcome.

from tinynvidiaupdatechecker.

grynnan avatar grynnan commented on May 29, 2024

So I was just going to tell ElPumpo about 7-zip, and sevenzipsharp.. I think I don't have to. =P
Btw, codeplex is shuting down.. 7-zip extra is also available at sourceforge (Personal note: SF.. Eew!)

from tinynvidiaupdatechecker.

ElPumpo avatar ElPumpo commented on May 29, 2024

Yea why did they not chose github?

from tinynvidiaupdatechecker.

seagull avatar seagull commented on May 29, 2024

I have no problem with just including 7z.exe (and the DLLs) with the binary when I distribute it. Would that work? Will the program search its immediate directory for 7z (or if not, could it?)

from tinynvidiaupdatechecker.

ElPumpo avatar ElPumpo commented on May 29, 2024

You have another option and that would be to bundle 7za.exe with your application, then launch it as a process from your code and wait for it to finish, but unless you create pipes for STDIN and STDOUT to communicate with 7za.exe process (which still requires good Windows API knowledge and some marshalling) you won't be able to display the decompression progress, not to mention that launching console apps in a separate process when there is a programatic way of doing decompression is ugly.

have you tried out v1.9.0-beta1? it uses 7zG.exe which will show a GUI whilst extracting the content, which is good enough i say.

You can argue that those 95% don't need your program, but I'd say that even those who have 7-Zip don't because they can find and download and extract the driver on their own

Sure thing man, but exactly which files should you extract; and which ones shouldn't you ? 🔢

For a program to be useful it has to offer a signiicant amount of convenience and this convenience will always be more significant to those who are not tech savvy already.

Then I'll say again: for 'minimal install' to be effective, the user must fully uninstall the current drivers using DDU and then use the extracted drivers that TNUC makes. This feature is only for advanced users, and I expect advanced users to have either 7Zip or WinRAR installed.

from tinynvidiaupdatechecker.

levicki avatar levicki commented on May 29, 2024

To answer your questions:

  1. No, I have not tried 1.9.0 beta1 because I don't see it on the releases page here on GitHub.

  2. Extract all files and modify setup.cfg using Notepad to remove telemetry while still allowing the user to install other stuff they need such as PhysX (pretty much required for most games), 3D Vision (in case they have NVIDIA 3D glasses), HDAudio driver (in case they use audio through HDMI). It is not that hard to do that manually for people who are familiar with NVIDIA driver packages.

Anyway, this discussion has just became pointless so I am out. I just wanted to help, sorry if I have disturbed you.

from tinynvidiaupdatechecker.

grynnan avatar grynnan commented on May 29, 2024

So after some research I'm left confused yet again

Why did you recommend me SevenZipSharp?!

has not been updated since 2011
    'newest' fork by StevenBonePgh was updated ~1 year ago
still requires 7zip installed (7zip binaries, 7z.dll etc)
NO documentation

Old, yes, but it works. And the docu is good.

I'm not ready to pack 5000 dll files into TNUC, sorry. Unless I find another solution to this, I guess will stay with what I'm already using...

Ehm.. read the docu? =P
Nope, not 5000, nor 500 or 50.. more like 5.. or 15 if you want .FAR support (Who uses .far anyway?)

and I still want an answer for:

who doesn't have either winrar or 7zip on their computer?

7zip, because a lot of people doesn't know about it.
Winrar, because they use the built in crap in windows.

from tinynvidiaupdatechecker.

ElPumpo avatar ElPumpo commented on May 29, 2024

I'm not going to argue any more about this either, as I've already said the requirement is optional, and only used for the optional feature called 'minimal install' and is only for advanced users.

I have no problem with just including 7z.exe (and the DLLs) with the binary when I distribute it. Would that work? Will the program search its immediate directory for 7z (or if not, could it?)

How about the application if searches for a 7ip directory in the same directory the executable is located in, so you can use 7Zip portable? By default it will check if the program is installed by looking in the registry for the 7zip installer & uninstaller

from tinynvidiaupdatechecker.

seagull avatar seagull commented on May 29, 2024

Works for me!

from tinynvidiaupdatechecker.

ElPumpo avatar ElPumpo commented on May 29, 2024

TinyNvidiaUpdateChecker v1.9.0-beta 2.zip

  • now also supports a portable version of 7zip, there must be a 7-Zip directory in the same folder that the application is in

Two betas have been released in total, next thing would be fully releasing v1.9.0

from tinynvidiaupdatechecker.

MrJustMe avatar MrJustMe commented on May 29, 2024

Hi there

Ok but who doesn't have either winrar or 7zip on their computer?.

I :)
I went to test the beta 2 but i stopped when the message for winrar came out, so i finally did not test the beta.
Anyway, i think the 7zip option commented before could be the best and for sure i will prefer if you bundle the dll and the config file in the same download.
If you finally take this way, how to do this?. Well, i have no idea since i'm not a coder but you have a good example in one of the following links:
http://www.peazip.org/peaextractor-unace-unrar-unzip.html
Portable versions of the software (direct downloads):
Windows All: peaextractor-portable-1.3.WINDOWS.zip
Windows 64 bits: peaextractor-portable-1.3.WIN64.zip

Just download one of the portable versions, and look inside the downloaded zip for the folder 7z, That's the way!!. Perhaps you can use an exact copy of that directory with your config file simply adding another text file referring to the Peazip Project or even is not requiered thanks to the GNU LGPL license.
Have a good day!.
PD Also i recommend peazip instead 7zip for compress and extract stuff, i think is better, you can google some benchmarks between them.

from tinynvidiaupdatechecker.

ElPumpo avatar ElPumpo commented on May 29, 2024

@MrJustMe sure thing man! Adding support for PeaExtractor now! (I also fixed the links in your comment)

Edit
But why do you want support for PeaExtractor? It uses 7zip to extract .sfx files anyways

i think is better, you can google some benchmarks between them.

you think, but you don't know. as i said above it uses 7zip, so how can it be any faster?!

Edit 2
Seems like PeaExtractor doesn't support listing the files to be extracted, so I cannot add it - there's nothing I can do. We use inclList.txt to give the extractors a list of the stuff inside the archive we want extracted. PeaZip supported command line arguments

from tinynvidiaupdatechecker.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.